私はコーディングしていますが、エラーが表示されません。それは直接 "エラー"ではありませんが、私が青を押すと、背景は青に変わりません。私はクラスMeny(ActionListener)からこのコードをpublic void actionPerformed(ActionEvent e)に置き換えようとしましたが、動作しません。Java ActionListenerでエラーが発生しました
ここにコードがあります。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenyTest extends JFrame {
JPanel panel;
JMenuBar menyrad;
JMenu fargmeny, svmeny;
JMenuItem rod, gron, bla, svart, gra, vit;
public MenyTest() {
panel = new JPanel();
panel.setBackground(Color.white);
add(panel);
menyrad = new JMenuBar();
fargmeny = new JMenu("Färger");
svmeny = new JMenu("SvartVitt");
this.setJMenuBar(menyrad);
menyrad.add(fargmeny);
menyrad.add(svmeny);
rod = new JMenuItem("Röd");
gron = new JMenuItem("Grön");
bla = new JMenuItem("Blå");
svart = new JMenuItem("Svart");
gra = new JMenuItem("Grå");
vit = new JMenuItem("Vit");
fargmeny.add(rod);
fargmeny.add(gron);
fargmeny.add(bla);
svmeny.add(svart);
svmeny.add(gra);
svmeny.add(vit);
}
public static void main(String[] args) {
MenyTest f = new MenyTest();
f.setSize(500, 500);
f.setLocation(400, 150);
f.setTitle("MenyTest");
f.setDefaultCloseOperation(MenyTest.EXIT_ON_CLOSE);
f.setVisible(true);
}
public class Meny extends JFrame implements ActionListener {
public void actionPerformed(ActionEvent e) {
rod.addActionListener(this);
gron.addActionListener(this);
bla.addActionListener(this);
svart.addActionListener(this);
gra.addActionListener(this);
vit.addActionListener(this);
if (e.getSource() == rod) panel.setBackground(Color.red);
else if (e.getSource() == gron) panel.setBackground(Color.green);
else if (e.getSource() == bla) panel.setBackground(Color.blue);
else if (e.getSource() == svart) panel.setBackground(Color.black);
else if (e.getSource() == gra) panel.setBackground(Color.gray);
else if (e.getSource() == vit) panel.setBackground(Color.white);
}
あなたも、アクションイベントを起動することができません。 'MenyTest'をJFrameとして使っても大丈夫ですか? – utkarsh31
@ utkarsh31はいいいです! – Djubi