2017-12-04 3 views
0

SecondFrame 버튼에서 새 프레임을 열려고합니다. 원하는 프레임은 QueueFrame입니다. 그러나 나는 actionevent 넣었지만 아무런 동작이없는 것 같습니다. 이것은 내 Deneme4 클래스입니다JButton이 다른 클래스에있는 새 프레임을 엽니 다.

public class Deneme4 extends JFrame { 
    public static void main(String a[]) throws FileNotFoundException { 
    SecondFrame frame = new SecondFrame(); 

}} 

나는 SecondFrame가 문제없이되는 나타나지만 SecondFrame에 내가 B3이 지금은에 시도를 위해 B4 내가 각각 다른 클래스를 열려면이 내 첫 번째 프레임을 실행 할 때 B4하지만 아무것도

안하고 내 QueueFrame을 열

두번째 프레임 :

public class SecondFrame extends JFrame { 

private JButton b3; 
private JButton b4; 

public SecondFrame() { 

    JFrame secondframe = new JFrame(); 
    b3 = new JButton("Queue"); 
    b4 = new JButton("Stack"); 

    b3.setBounds(150, 100, 180, 100); 
    b4.setBounds(150, 300, 180, 100); 

    secondframe.add(b3); 
    secondframe.add(b4); 

    secondframe.setLayout(null); 
    secondframe.setSize(500, 750); 
    secondframe.setVisible(true); 
    secondframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

private void b4ActionPerformed(ActionEvent e) throws FileNotFoundException{ 

    QueueFrame queues = new QueueFrame(); 
    queues.setVisible(true); 
    Scanner s = new Scanner(new File("list.txt")); 
    Queue queue = new Queue(); 
    while (s.hasNext()) { 
     queue.setMessageOutput((Queue.MessageOutput) queues); 
     queue.enqueue(s.nextInt()); 
    } 
    s.close(); 
    queue.queueSize(); 
    queue.getHead(); 
}} 
+0

, 당신은의 읽기 [버튼을 사용하는 방법 (https://docs.oracle.com/javase/tutorial/uiswing/components/button.html)와 [작성하는 방법에 ActionListener를이 필요합니다 ] (https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html). 튜토리얼을 읽고 UI를 코딩하고 양식 편집기를 사용하지 않으려 고 노력하면 많은 기능을 숨길 수 있습니다. – MadProgrammer

+0

또한 API를 사용하는 것이 좋습니다. [Container 내의 구성 요소 레이아웃] (https://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) – MadProgrammer

답변

0

이 MadProgrammer ... 자세히 말하고, 쓰는 방법을 배울 방법 : 된 ActionListener의를하지 양식 편집기의 따라 당신이 할 수있는 원인, 나쁜 습관입니다.

글쎄, 당신이해야 할 일은 올바른 ActionListener를 작성하는 것입니다. 먼저, 클래스 이름과 메소드 이름을 작성하십시오. 먼저

yourButton.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e){ 
SecondFrame Sf = new SecondFrame(); 
Sf.frame();}}); 
+0

끝까지 처리 할 수 ​​있었지만 아무튼 감사합니다. –

+0

예, 문제 없어. –

관련 문제