public void paint(Graphics g) {
myWidth = getSize().width; // get this Applet size
myHeight = getSize().height;
double xCoord, yCoord;
int yPixel;
String str = JOptionPane.showInputDialog("Enter your name.");
g.drawString(str, 100, 100);
for (int xPixel = 0; xPixel < myWidth; xPixel++) {
xCoord = (double) (xPixel - myYAxisHPos) / myXUnitPixels;
yCoord = f(xCoord);
yPixel = (int) (myXAxisVPos - yCoord * myYUnitPixels);
g.drawLine(xPixel, yPixel, xPixel, yPixel);
}
}
我想知道为什么启动小程序时它会打开两次。任何帮助,将不胜感激。
最佳答案
public void paint(Graphics g)
{
..
String str = JOptionPane.showInputDialog("Enter your name.");
切勿在
paint(Graphics)
方法内更改GUI或弹出模式对话框!后者将阻塞EDT,并且两者都将导致循环。我想知道为什么启动小程序时它会打开两次
Paint可以随时调用,它不在程序员的控制范围内。
相反,应将方法移至
init()
方法,并将结果存储为类属性。就像是:
String str = null;
@Override
public void init() {
str = JOptionPane.showInputDialog("Enter your name.");
//..
}