我想在启动/初始化时更改applet中的JPanel对象。我不知道该怎么做。我已经做了一个简单的例子来说明我清除JPanel的问题。当它由init()方法调用时,它不起作用,但是当我按下按钮时,它起作用。如何在启动/初始化时更改JPanel?
import javax.swing.JApplet;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class TestStartUpApplet extends JApplet {
JPanel panel;
@Override
public void init() {
System.out.println("Init");
erasePanel();
}
private void erasePanel() {
Graphics g = panel.getGraphics();
g.clearRect(0, 0, 117, 48);
}
public TestStartUpApplet() {
getContentPane().setLayout(null);
panel = new JPanel();
panel.setBackground(Color.RED);
panel.setBounds(35, 36, 117, 48);
getContentPane().add(panel);
JButton btnTest = new JButton("Test");
btnTest.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
erasePanel();
}
});
btnTest.setBounds(35, 108, 117, 25);
getContentPane().add(btnTest);
}
}
最佳答案
题
不知道为什么要在没有任何自定义绘画的情况下清除空的JPanelJPanel
红色Background
有什么问题
您清除JApplet,然后在屏幕上将其显示
不能正常工作,因为什么都不工作
建议
不要使用AbsoluteLayout,而是使用LayoutManagerGraphics g = panel.getGraphics();
可用于printing to the printer,或保存Graphics to the image,请勿出于其他原因使用此方法
阅读JApplet的工作原理
如果您不想将GUI发布到Web浏览器,则可能使用JFrame
也许阅读有关2D Graphics的教程