我制作了自己的组件,将其命名为“hi”并将其放入 JPanel 中,然后将该 JPanel 放入 JFrame 中,但没有任何显示。我在 JPanel 周围做了一个边框,以查看 JPanel 是否甚至在 JFrame 上,果然,它在那里,但我的组件(顺便画了弧线)不在 JPanel 上。
JFrame frame = new JFrame();
JPanel panel = new JPanel();
final int FRAME_WIDTH = 400;
final int FRAME_HEIGHT = 400;
testComponent hi = new testComponent();
panel.add(hi);
frame.add(panel);
panel.setBorder(BorderFactory.createLineBorder(Color.red));
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
这就是我的主要内容,这基本上是我的测试课中唯一的东西。testComponent() 只是有一个绘制的paintComponent()。
和组件
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
g2.draw(new Arc2D.Double(100,100,100,100,0,30,Arc2D.PIE));
g2.fill(new Arc2D.Double(100,100,100,100,30,330,Arc2D.PIE));
}
需要注意的是,JButton、JTextField 等。这些在 JPanel 中工作得很好