Java JPanelを使ったコードについての質問です
Java JPanelを使ったコードについての質問です
4つのTextFieldに数値を入力し、エンターキーが押されたときに円グラフが表示されるプログラムについての質問です。
下記のコードなのですが、何故かエラーが出てしまいます…
public class PieCharts extends JPanel implements ActionListener
{
private JLabel l1, l2, l3, l4;
private JTextField t1, t2, t3, t4;
private JButton bt;
private JPanel pn1,pn2;
int h, m, l, n, w, x, y, z;
private DrawOvalPane dop;
public static void main(String args[])
{
JFrame frame = new JFrame("Applet");
frame.setContentPane(new PieCharts());
frame.addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
frame.pack();
frame.setVisible(true);
}
public PieCharts()
{
dop = new DrawOvalPane();
l1 = new JLabel("High Risk", JLabel.RIGHT);
l2 = new JLabel("Medium Risk", JLabel.RIGHT);
l3 = new JLabel("Low Risk", JLabel.RIGHT);
l4 = new JLabel("No Risk", JLabel.RIGHT);
t1 = new JTextField();
t1.addActionListener(this);
t2 = new JTextField();
t2.addActionListener(this);
t3 = new JTextField();
t3.addActionListener(this);
t4 = new JTextField();
t4.addActionListener(this);
bt = new JButton("Enter");
pn1 = new JPanel();
pn2 = new JPanel();
pn1.setLayout(new GridLayout(2,4));
pn1.add(l1);
pn1.add(t1);
pn1.add(l2);
pn1.add(t2);
pn1.add(l3);
pn1.add(t3);
pn1.add(l4);
pn1.add(t4);
pn2.add(bt);
setLayout(new BorderLayout());
add("North", pn1);
add("Center", dop);
add("South", pn2);
bt.addActionListener(new SampleActionListener());
}
お礼
確かにそうですよね。 getComponentsで取得している親コンポーネントを間違えていました。 そのためgetComponentsでは全て正しく取得できないのかと勘違いしていました。 JButtonが追っているJPanelのgetComponentsでうまくいきました。 ありがとうございます。