【发布时间】:2012-01-31 15:16:54
【问题描述】:
很长一段时间以来,我一直在我的代码中寻找这种行为的原因。我不想深入研究 Swing API 来弄清楚为什么会发生这种情况。我将不胜感激有关导致此问题的原因的任何信息。
这是我正在编写的应用程序的简化版本,问题似乎是当我第一次单击绘制时,图像不会绘制到面板上,但是当我第二次单击它时,它会绘制完美的形象。之后完成的任何绘图都可以正常工作,但最初的油漆问题让我非常恼火。谢谢你的帮助! :)
public class ImageTester {
public static void main(String[] args) {
final JFrame window = new JFrame("Image Tester");
final JPanel pane = new JPanel();
JButton draw = new JButton("Draw");
JButton paint = new JButton("Paint");
Toolkit k = Toolkit.getDefaultToolkit();
final Image i = k.createImage("tester.jpg");
//pane.getGraphics().drawImage(i, 22, 15, null);
draw.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.out.println(pane.getGraphics());
pane.getGraphics().drawRect(5, 5, 15, 15);
pane.getGraphics().drawImage(i, 15, 15, null);
System.out.println("Performance");
}
});
paint.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
pane.add(draw);
pane.add(paint);
window.add(pane);
window.setVisible(true);
window.setSize(new Dimension(400, 400));
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
【问题讨论】:
标签: java swing graphics draw repaint