独自のコンポーネントを作成し、「hi」という名前を付けてJPanelに入れ、そのJPanelをJFrameに入れましたが、何も表示されません。JPanelがJFrame上にあるかどうかを確認するために、JPanelの周囲に境界線を作成しました。確かに、そこにありますが、コンポーネント(ちなみに円弧を描く)は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でダンディに機能します