2017-03-21 7 views
0

こんにちは私はJava言語が初めてです.NetBeans IDE 8.2でJFrameを作成しました。 JFrameには、スイングパレットから直接作成された8つのボタンが含まれています。たとえば、5つのボタンをクリックして別のJFrameフォームを開く場合です。 別のJFrameフォームを表示するには、最後のbtnActionPerformedにsetVisible(true)メソッドが使用されています。 5つのボタンをクリックして、もう1つのJframeフォームを表示する方法を教えてください。誰かが私に求めていることを知っていれば、解決策を見つけるのを手伝ってください。ボタンを1つずつ押してください

+1

ただ、いくつかのアドバイスのフレンドリーな言葉:まず常に解決策を思いついてから、あなたの質問でこの解決策をベストセラーにしようとするのが常にベストです。これを行うと、質問の質が大きく向上します。そのため、通常は回答の質も高くなります。また、あなたは努力から多くのことを学ぶでしょう。 –

+0

実際には、解決策では、btn5ActionPerformed()内の5つのボタンを有効にして別のJframeフォームのsetVisible(true)を設定していましたが、ボタン5を有効にしても、 JFrame .. – andu

+0

あなたは何らかの種類のキーコードパッドを作成しようとしていますか?あらかじめ定義されたシーケンスを押す必要がある場所 – MadProgrammer

答えて

1

ボタンをクリックするたびにその値が1増加し、その値が5のときは、を2番目のJFrameに呼び出します。

しかし、あなたはThe use of multiple JFrames, Good/Bad practice?を読むことをお勧めします。一般的な合意は、それが悪い習慣であると言います。

あなたはコードではなく提供されるように、私はそれが下の画像とActionListenerコードで可能だということをお見せすることができ、しかし、あなたは、自分でこのソリューションを実装する必要があります。

enter image description here

ActionListener listener = new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     for (int i = 0; i < ROWS; i++) { 
      for (int j = 0; j < COLS; j++) { 
       if (e.getSource().equals(buttons[i][j])) { 
        clics++; 

        sequenceLabel.setText("Number of Clics: " + clics); 
        if (clics == 5) { 
         clics = 0; 
         frame2.pack(); 
         frame2.setLocationRelativeTo(frame1); 
         frame2.setVisible(true); 
        } 
       } 
      } 
     } 
    } 
}; 
関連する問題