2017-12-04 7 views
0

私はSecondFrameボタンから新しいフレームを開こうとしています。必要なフレームはQueueFrameです。しかし、私はactioneventを入れているが、私はボタンを押しても何の行動もないようだ。私は私の最初のフレームが問題なくSecondFrameあるアップしますが、SecondFrameに私はB3と私はそれぞれ異なるクラスを開きたいB4、今の私が試してみました、これを実行しない場合、これはJButtonが別のクラスにある新しいフレームを開く

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

}} 

私Deneme4クラスです

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)を参照してください。あなたは時間をかけてAPIの仕組みを学び、チュートリアルを読んで、UIのコードを手渡し、フォームエディタに頼らないように努力する必要があります。そうしないと、多くの機能が隠されます。 – MadProgrammer

+0

私はまた、 [コンテナ内のコンポーネントのレイアウト](https://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) – MadProgrammer

答えて

0
MadProgrammerが言っどのように...続きを読むを

、と書く方法を学ぶ:B4が、その何か

をしていない第二のフレームと私のQueueFrameを開くのActionListenerの、フォームエディタに依存することはできません。原因、悪い習慣です。

あなたが行う必要があるのは、正しいActionListenerを作成することです。まず、クラスの名前の後にメソッドの名前を書きます。

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

私は最後にそれを行うことができましたが、とにかく感謝します –

+0

確かに、問題ない。 –

関連する問題