0
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Background {
JFrame frame = new JFrame();
JMenuBar menubar;
JTextArea field;
JMenuItem black, white;
Background(){
frame.setLayout(new GridLayout(1,2));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(new Dimension(600,200));
JPanel jp1 = new JPanel();
jp1.setBackground(Color.BLACK);
field = new JTextArea();
field.setLayout(new BoxLayout(field, BoxLayout.Y_AXIS));
for(String m : message){
field.add(new JLabel(m));
}
menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu changecolor = new JMenu("change color");
menubar.add(changecolor);
black = new JMenuItem("black");
white = new JMenuItem("black");
black.addActionListener(new FarbListener(frame, Color.WHITE));
changecolor.add(black);
changecolor.add(white);
frame.add(field);
frame.add(jp1);
frame.setVisible(true);
}
class FarbListener implements ActionListener{
private final JFrame frameToWorkOn;
private final Color colorToSet;
FarbListener(JFrame frameToWorkOn, Color colorToSet){
this.frameToWorkOn = frameToWorkOn;
this.colorToSet = colorToSet;
}
public void actionPerformed(ActionEvent e) {
frameToWorkOn.setBackground(colorToSet);
}
}
public static void main(String[]args){
new Background();
}
}GUI - ActionListener的構造函數,如何讓它們工作?
我需要創造一個GUI,並添加一個ActionListener到JMenuItems。
GUI工作得很好,但我無法使ActionListener正常工作。
代碼給出我無法改變它(它需要實現ActionListener,我需要寫一個構造函數)。
當我按下MenuItem「黑色」時,它會改變爲背景顏色。
你是什麼意思「實際聽」?它是不是像它應該被稱爲?你看過「actionPerformed」的參數嗎? – ChiefTwoPencils
請閱讀有關Java命名約定。類名開始UpperCase。總是。 – GhostCat
是的先生,我標記了空間的問題,我不知道該寫什麼......如果我在操作中寫jp1.setBackground()執行它給了我錯誤「創建類jp1」....我沒有明白,我應該寫什麼作爲構造函數... – klarz