Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java小程序仅在最大化模式下工作_Java_Applet_Awt - Fatal编程技术网

Java小程序仅在最大化模式下工作

Java小程序仅在最大化模式下工作,java,applet,awt,Java,Applet,Awt,我在Eclipse中编写了一个简单的Java小程序代码。 这是一个厘米到米的转换代码。 它仅在小程序处于最大化模式时显示结果。 在最小化模式下,当我单击提交按钮时,结果不会显示。但是如果我最大化小程序,则在不更改小程序中的任何内容的情况下,将显示答案。 为什么会这样? 我的其他代码在最小化模式下工作正常 下面是代码 package converter; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.ev

我在Eclipse中编写了一个简单的Java小程序代码。 这是一个厘米到米的转换代码。 它仅在小程序处于最大化模式时显示结果。 在最小化模式下,当我单击提交按钮时,结果不会显示。但是如果我最大化小程序,则在不更改小程序中的任何内容的情况下,将显示答案。 为什么会这样? 我的其他代码在最小化模式下工作正常

下面是代码

package converter;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.applet.*;

public class convert extends Applet implements ActionListener {

    private static final long serialVersionUID = 1L;
    Button a;
    String msg ="";
    String msg1 = "";
    String msg2 = "";

    TextField m,n;
    Label l,p;
    float x,y;
    public void init()
    {
        setLayout(new GridLayout(5,5));
        a = new Button("Submit");
        m = new TextField(msg,10);
        n = new TextField(msg,10);
        l = new Label("IN CM");
        p = new Label("IN M");
        add(l);
        add(m);
        add(a);
        add(p);
        add(n);
        a.addActionListener(this);
        m.addActionListener(this);
        n.addActionListener(this);
    }

    public void actionPerformed(ActionEvent ae)
    {
       msg1 = ae.getActionCommand();
       if(msg1.equals("Submit"))
       {
       repaint();}
    }   
    public void paint(Graphics g)
    { 
        msg2 = m.getText();     
            x = Integer.parseInt(msg2);
            y = x/100;
            msg = y + "";
            n.setText(msg);
    }
}

您已经编写了要在绘制方法中单击按钮执行的逻辑,请改为在actionperformed中编写该逻辑

现在,当您尝试调整窗口大小时,将调用窗口绘制方法并显示结果

repaint方法是在小程序中显式调用paint方法的方法。repaint方法管理更新->绘制循环,因此,当您首次尝试重新绘制时,它会调用update。如果小程序需要任何大小调整、比例更改,或者在运行时对外观进行其他更改,则必须包括重新绘制以绘制包含这些更改的小程序

 public void actionPerformed(ActionEvent ae){
    msg1 = ae.getActionCommand();
    if(msg1.equals("Submit")){
       msg2 = m.getText();     
       x = Integer.parseInt(msg2);
       y = x/100;
       msg = y + "";
       n.setText(msg);
  }
}