Как сделать так, чтобы JPanel появлялся при нажатии кнопки JButton? - PullRequest
2 голосов
/ 26 марта 2012

У меня есть панель ColorChooser, как я могу сделать это, когда я нажимаю кнопку JButton в моей программе?РЕДАКТИРОВАТЬ: я хочу, чтобы он появился в новом кадре, который можно изменять, перемещать и закрывать.

Ответы [ 2 ]

2 голосов
/ 27 марта 2012

Вы можете посмотреть Учебное пособие по Java Swing - ColorChooserDemo2: http://docs.oracle.com/javase/tutorial/uiswing/components/colorchooser.html#advancedexample

По сути, JColorChoose может отображаться в диалоговом окне: http://docs.oracle.com/javase/6/docs/api/javax/swing/JColorChooser.html

Color newColor = JColorChooser.showDialog(
                 ColorChooserDemo2.this,
                 "Choose Background Color",
                 banner.getBackground());

Для кнопки для активацииэтот файл выбора:

button.addActionListener(new ActionListener(){  
    public void actionPerformed(ActionEvent e) {  
    //color is whatever the user choose  
        Color color = JColorChooser.showDialog(currentComponent, "Color Chooser", Color.WHITE);  

        JButton thisBtn = (JButton)e.getSource(); //or you can just use button if that's final or global
        thisBtn.setBackground(color);
    }  
}); 
1 голос
/ 27 марта 2012

Вам нужно написать ActionListener для вашего JButton.

Примерно так:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

/**
 *
 * @author roger
 */
public class MyActListener extends JFrame implements ActionListener{

    public MyActListener(){
        super("My Action Listener");

        JButton myButton = new JButton("DisplayAnything");
        myButton.addActionListener(this);
        this.add(myButton);


        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        this.pack();
        this.setVisible(true);        
    }

    public static void main(String[] args) {
        // TODO code application logic here
        MyActListener ma = new MyActListener();
    }

    @Override
public void actionPerformed(ActionEvent e) { // YOur code for your button here
    if("DisplayAnything".equals(e.getActionCommand())){
        Color c = JColorChooser.showDialog(this, "Color Chooser", Color.BLACK);
        JButton displayAnything = (JButton)e.getSource();
        displayAnything.setBackground(c);
    }
}

Взгляните на учебники по Java из Как написать ActionListener . Посмотрите на действительно большой индекс, чтобы увидеть основные учебники о Java в целом.

...