同じJFrame
の2つのボタンを使用してそれぞれ異なるタスクを実行したいと思います。 1つは右のラベルを変更し、もう1つは中央の円の色を変更します。プログラムはJavaの内部クラスを認識しません
何らかの未知の理由により、メインクラス(クラスTwoButtons
)内に存在する内部クラスをプログラムが認識していないように見えることがあります。私はかなりJavaに新しい、私は間違ってやっていることを見つけることができません....あなたは私の問題を解決するために私を助けてくれますか?
package twoButtonsPackage;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TwoButtons {
JFrame frame;
JLabel label;
public static void main(String[] args) {
TwoButtons gui = new TwoButtons();
gui.go();
}
public void go(){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton labelButton = new JButton("Change label");
labelButton.addActionListener(new LabelListener());
JButton colorButton = new JButton("Change cirle");
colorButton.addActionListener(new ColorListener());
label = new JLabel("I'm a labele");
MyDrawPanel drawPanel = new MyDrawPanel();
frame.getContentPane().add(BorderLayout.SOUTH, colorButton);
frame.getContentPane().add(BorderLayout.CENTER, drawPanel);
frame.getContentPane().add(BorderLayout.WEST, labelButton);
frame.getContentPane().add(BorderLayout.EAST, label);
frame.setSize(300, 300);
frame.setVisible(true);
class LabelListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
label.setText("Ouch!");
}
}
class ColorListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
frame.repaint();
}
}
}
}
私は
labelButton.addActionListener(new LabelListener());
上のエラーを取得し、
colorButton.addActionListener(new ColorListener());
にそれはLabelListenerとColorListenerの両方がタイプとして解決することはできません両方の機会に述べています。
あらかじめありがとうございます!! Javaで
者は、ローカルクラスです。それらはメソッド内で宣言されます。それらを使用する前にそれらを宣言してください。 – Savior