爲了幫助瞭解關於Java中的EventListeners
的更多信息,我創建了一個簡單的程序,它由一個JFrame
和兩個JPanels
組成,它應該做的是在Jpanel
上切換第二色作爲它被點擊。第二次設置JPanel對象的背景
我的代碼在點擊時將每個JPanel更改爲新的輔助顏色,但當它再次單擊時,它會恢復爲原始顏色。我需要改變以使其正常工作?我試過多次重寫代碼,所以我必須忽略EventListener或JPanel的工作原理。
package com.spencerlarry;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class View extends JFrame{
public static final int OFF = 1;
public static final int ON = 1;
public static final String DARKGRAY = "#696969";
public static final String CYAN = "#00FFFF";
Space top;
Space bottom;
public View(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Window Test");
this.setSize(300, 300);
this.setMinimumSize(getSize());
this.setLayout(new GridLayout(2,1));
add(new Space());
add(new Space());
}
public class Space extends JPanel implements MouseListener{
private String color;
public Space(){
setBackground(Color.decode(DARKGRAY));
addMouseListener(this);
}
public String getColor(String c){
return color;
}
public void setColor(){
if(color == CYAN){
setBackground(Color.decode(DARKGRAY));
}
else{
setBackground(Color.decode(CYAN));
}
}
@Override
public void mouseClicked(MouseEvent e) {
this.setColor();
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
}
}
@spencerlarry注意,'color'變量將不得不從'String'改爲'Color'如果你做這個。 – gla3dr