2012-03-26 2 views
2

ColorChooser 패널이 있는데, 프로그램에서 JButton을 클릭하면 어떻게 나타나게 할 수 있습니까? 편집 : 크기를 조정할 수 있고 이동 가능하며 닫을 수있는 새 프레임에 표시하려고합니다.JButton을 클릭 할 때 JPanel이 나타나게하려면 어떻게해야합니까?

+0

추가 정보가 필요합니다. 어디에서 나타 납니까? 다른 창문 뒤에서 같은 창문? 대화 상자의 팝업? –

+0

크기 조정 가능하고 이동 가능하며 닫을 수있는 새 프레임에 표시하려고합니다. –

+0

어떻게 ColorChooser가 나타나게 되었습니까? 자신의 패널과 동일하게하십시오. – Randy

답변

1

JBu 용 ActionListener를 작성해야합니다. 톤. 이 같은

뭔가 :

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); 
    } 
} 

How to write an ActionListenerJava tutorials를 살펴 보자. Java에 대한 기본적인 자습서를 보시려면 여기에있는 큰 인덱스를보십시오.

+0

이것이 JButton에 대한 액션 리스너를 작성하는 올바른 방법 일 경우 추가 독자로부터 피드백을받을 수 있습니까? 버튼 수가 증가하기 시작하면 ActionListener를 구현하는 클래스를 만드는 것이 더 낫습니까? – Roger

+1

나는 개인적으로 주석의 마지막 예제와 같은 익명의 내부 클래스를 사용하는 것을 선호하며, 클래스에 대한 호출을 선호합니다. (예 : myButton.addActionListener (this); myButton.addActionListener (new MouseListener() {...}) 거기에서 논리를 구현하십시오. 이렇게하면 액션 명령을 정의 할 필요가 없으며 주목 한대로 새로운 버튼을 추가 할 때 actionPerformed 메서드가 다소 오래 걸릴 수 있습니다. 귀하의 모든 예는 유효하며 물론 사용 중입니다. – mort

+0

감사! 질문이 하나 더 있는데 어떻게하면 버튼을 내가 선택한 색상으로 보이게 할 수 있습니까? –

2

당신은 자바 스윙 자습서를 볼 수 있습니다 - 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); 
    } 
}); 
+0

감사합니다 :) 내 JButton에서 내 ActionPerformed에서 어떻게 구현할 수 있습니까? –

+0

그래, 한 번 더 질문, 어떻게 내가 버튼을 내가 선택한 색상으로 표시 할 수 있습니까? –

관련 문제