Her biri farklı bir görev yapmak için aynı JFrame
üzerinde 2 düğme kullanmak istiyorum. Biri sağdaki etiketi değiştirmek ve ortadaki dairenin rengini değiştirmek için. (Rastgele değişen renk başka bir sınıf üzerindedir.)Program java iç sınıflarını tanımıyor
Bilinmeyen bir nedenden ötürü, program, ana sınıfın içinde bulunan sınıfları (sınıf TwoButtons
) tanımak gibi görünmüyor. Java'ya oldukça yeni yaşıyorum ve yanlış yaptığım şeyi bulamıyorum .... Sorunumu çözmek için bana yardımcı olabilir misiniz?
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();
}
}
}
}
Ben
labelButton.addActionListener(new LabelListener());
bir hata alır ve
colorButton.addActionListener(new ColorListener());
üzerine O LabelListener ve ColorListener hem türü olarak çözümlenen olamaz iki olayda diyor.
Önceden çok teşekkür ederiz .. !!
olanlar yerel sınıflardır. Yöntemin içinde beyan edilirler. Onları kullanmadan önce bildirin. – Savior