2011-12-01 3 views
1

정보를 검색 할 수있는 별도의 창에서 새 jframe을 여는 메서드를 만드는 방법에 대해 궁금합니다. 클릭 만하는 버튼이 있지만 클릭 한 번 클릭하면 정보를 검색 할 수있는 문자열을 입력 할 수있는 새 창이 열립니다. Jframe을위한 새로운 클래스를 생성해야합니까? 모든 팁과 코드는 크게 감사하겠습니다. 감사!정보를 검색하기 위해 별도의 창에 새 jframe을 여는 클릭 단추 이벤트

답변

0

이 '2 프레임'의 복잡성에 따라 내부 클래스를 사용하거나 별도로 만들 수 있습니다. 어느 쪽이든 버튼에있는 이벤트 리스너를 사용하여이 새 클래스의 인스턴스를 실행 시키십시오.이 클래스는 새 Jframe을 생성하거나 생성하고이를 표시로 설정합니다.

2

제안 :

  • 두 번째 JFrame의를 사용하지 마십시오. 대신 원본 JFrame에 종속 된 JDialog 또는 JOptionPane을 표시하십시오.
  • 복잡한 일과 나중에이 코드를 유지 관리하는 데 얼마나 신경을 많이 쓰는지에 따라 여러 클래스를 사용하거나 현재 클래스에서 GUI를 만들 수 있습니다. 일반적으로 다른 클래스의 다른 작업을 구분하는 것이 좋습니다.
  • JFrames 및 JDialog와 같은 최상위 창을 하위 클래스 화하지 마십시오. 일반적으로 JPanels를 작성하고 JPanels를 사용하여 코드를 표시하는 것이 최상위 레벨 윈도우에 필요하면 코드를 표시하는 것이 좋습니다.
  • 스윙 튜토리얼을 만드는 데 필요한 모든 정보를 찾을 수 있어야하므로 스윙 튜토리얼을 반드시 살펴 보시기 바랍니다.
  • 샘플 코드까지는이 포럼에서 검색 할 수있는 것이 많지만 일부는 좋은 코드입니다.
3

두 번째 창에 표시 될 기능 목록에 따라 다릅니다. 기능 목록이 상당히 확장 된 경우 별도의 클래스를 사용하는 것이 좋으며 JDialog에서도 필요하지 않습니다.

샘플 코드 버튼의 클릭에 JDialog를 여는 방법을 보여으로는 다음과 같습니다 :

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JDialog; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class TestFrameOnFrame extends JFrame implements ActionListener{ 

    public TestFrameOnFrame(){ 
     JButton button = new JButton("Show New Frame"); 
     button.addActionListener(this); 
     this.add(button); 
     this.pack(); 
     this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     this.setVisible(true); 
    } 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     JDialog dialog = new JDialog(this); 
     dialog.setTitle("Search Dialog"); 
     dialog.add(new JLabel("Just a test")); 
     dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 
     dialog.setVisible(true); 
    } 

    public static void main(String[] args) { 
     new TestFrameOnFrame(); 
    } 
} 
+2

이 라인의 목적은 무엇인가'JFrame의 프레임 = 새로운 JFrame의 ("프레임 검색"); ' ? –

+0

errrr .... 검토를 위해 +1을 제거했습니다. – mprabhat

+0

더 좋음. 상향 투표 1+ –

관련 문제