最近、画面上でボタンを数回動かす必要がある簡単なプログラムを作成しようとしましたが、これを行うには、コードの特定の部分からJPanelにアクセスできる必要があります。できる、または別の方法を見つけることができます。これが私が抱えている問題を特定する小さなプログラムです。
public class ButtonMover extends JFrame
{
public static void main(String[] args) {
new ButtonMover();
}
JButton actionButton;
public ButtonMover() {
JPanel buttonMoverPanel = new JPanel();
buttonMoverPanel.setLayout(new GridBagLayout());
this.add(buttonMoverPanel);
this.setSize(500,500);
this.setResizable(true);
this.setVisible(true);
JButton actionButton = new JButton("Testing Button");
buttonMoverPanel.add(actionButton);
ClickListener c = new ClickListener();
actionButton.addActionListener(c);
}
private class ClickListener
implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if (e.getSource() == actionButton)
buttonMoverPanel.add(new JLabel("Testing Label"));
//insert code to move button here
}
}
}
| buttonMoverPanel.add(new JLabel( "Testing Label")); | その領域からbuttonMoverPanelを参照できないように見えるため、行が機能しない唯一の部分です。実際にはエラーは発生しませんが、actionButtonが何も実行できなくなります。