【发布时间】:2013-07-09 22:28:32
【问题描述】:
我在尝试使用JPanel 时被卡住了。我已经学会了如何创建JFrame、JPanel、添加事件处理程序、在小程序中做同样的事情,以及其他一些基本的 GUI 开发。但是每次我尝试使用paintComponent(Graphics g) 或paint(Graphics g) 方法绘制JPanel 时,什么都没有出现。按钮以及其他 JComponents 显示得很好。但是g.drawString、g.drawRect 等会导致JFrame 窗口空白。
这是我的代码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class Game extends JPanel {
public static void main(String[] args) {
new Game().game();
}
JPanel panel;
JButton button2;
JButton button;
public void game() {
panel = new JPanel();
button = new JButton("Ok");
panel.setLayout(new FlowLayout());
panel.add(button);
button2 = new JButton("Cancel");
JFrame frame = new JFrame("Game");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,500);
frame.setResizable(false);
frame.add(panel);
frame.setVisible(true);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("hi",100,100);
g.fillRect(100,50,200,300)
}
}
【问题讨论】:
标签: java swing jframe jpanel paintcomponent