2015-12-04 279 views
0

我的问题只是改变颜色的一小部分。我想改变整个背景,当我点击这些按钮。我已经搜索谷歌没有任何反应。如何更改背景颜色,当我点击一个按钮

我使用面板,但它似乎不仅是它的一小部分,它可以改变我想整个背景。

import java.awt.event.MouseListener; 
import javax.swing.JOptionPane; 
import java.awt.event.*; 
/** 
* 
* 
* @author Christopher Porras 
* @Version 0.1 
* @Doing GUI 
*/ 
public class Button extends JFrame { 

    private JButton bred; 
    private JButton bblue; 
    private JButton bgreen; 
    private JPanel mousepanel; 


    public Button() 
    { 
     super("ChangeColor"); 
     setLayout(new FlowLayout()); 
     setSize(200,200); 

     mousepanel = new JPanel(); 
     mousepanel.setBackground(Color.white); 
     add(mousepanel); 

     bred = new JButton("REd"); 
     add(bred); 

     bblue = new JButton("Blue"); 
     add(bblue); 

     bgreen = new JButton("Green"); 
     add(bgreen); 

     thehandler handler = new thehandler(); 
     bred.addMouseListener(handler); 
     bblue.addMouseListener(handler); 
     bgreen.addMouseListener(handler); 
    } 

    private class thehandler implements MouseListener 
    { 


     public void mouseClicked(MouseEvent e) 
     { 
      if(e.getSource()==bred) 
      { 
       mousepanel.setBackground(Color.red); 
      } 

      else if(e.getSource()==bblue) 
      { 
       mousepanel.setBackground(Color.blue); 
      } 

      else if(e.getSource()==bgreen) 
      { 
       mousepanel.setBackground(Color.green); 
      } 
     } 


     public void mousePressed(MouseEvent e) { 

     } 

     public void mouseReleased(MouseEvent e) { 

     } 


     public void mouseEntered(MouseEvent e) { 

     } 


     public void mouseExited(MouseEvent e) { 
       //To change body of generated methods, choose Tools | Templates. 
     } 



    } 

    public static void main(String[]args) 
    { 
     Button button = new Button(); 
     button.setVisible(true); 
     button.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 
+1

你可能有一个看一个ActionListener,而不是一个的MouseListener。 –

回答

5

您在正确的轨道上,但您需要将事件绑定到按钮组件,而不是中断鼠标信号。

代替的MouseListener的,改变theHandler这样:

public class TheActionHandler implements ActionListener { 

     @Override 
     public void actionPerformed(final ActionEvent e) { 
      if(e.getSource()==bred) 
     { 
      mousepanel.setBackground(Color.red); 
     } 

     else if(e.getSource()==bblue) 
     { 
      mousepanel.setBackground(Color.blue); 
     } 

     else if(e.getSource()==bgreen) 
     { 
      mousepanel.setBackground(Color.green); 
     } 
     } 
    } 
+0

谢谢拍品:D – Cypher

+0

@Cypher。如果我回答了您的问题,请在论坛上为其他开发者标记为已解决 – andrewdleach

相关问题