0

まず、すべてのOracle Javaの記事とチュートリアルを約6回読んだので安心してください。そのため、支援できる場合は、Oracleページへのリンクを提供するよりもうまくやる必要があります。失礼に聞こえたらごめんなさい。

どうやら私は文字列がどのように機能するのかわかりません。4つのjButtonを取得して、押されたときに値を文字列に送信しようとしています。これにより、最後に押されたボタンのみがその(名前、テキスト、機能するもの)を文字列または値に記録し、連結できるようになります。 jLabelのメッセージの値。

したがって、ここには2つの問題があります。「ステータス」ボタンを正しく設定してはいけません。次に、値を取得してjLabelに配置できるようにする必要があります。

このスクリーンショットを見ると、私が立ち往生している場所がわかります:http: //krisbunda.com/gui2.png

4つの「ステータス」ボタン(「出荷済み」または「ロード済み」など)の1つの値ではなく、「null」と表示されている場所を確認します。

    private void shippedButtonHandler(java.awt.event.ActionEvent evt) {                                      
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(loadedButton.getText());
}                                     

private void loadedButtonHandler(java.awt.event.ActionEvent evt) {                                     
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(loadedButton.getText());
}                                    

private void outReadyButtonHandler(java.awt.event.ActionEvent evt) {                                       
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(outsideReadyButton.getText());
}                                      

private void outNotReadyButtonHandler(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:
    StringBuilder status = new StringBuilder(outsideNotReadyButton.getText());
}                                         

private void enterButtonHandler(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    Confirmation.setVisible(true);
    Confirmation.setBounds(300,200,900,400);
    Confirmation.setModal(rootPaneCheckingEnabled);
    confirmationLabel.setText("You are about to send this message:"
            + "\n #" + display.getText()+ " is currently " + status);
}

private void confirmationNoButtonHandler(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    Confirmation.dispose();
}

どんな助けでも大歓迎です。

編集:

助けてくれてありがとう、これが私が「改行」問題のために考え出した回避策です:私は2つのJLabelを使用しました。 JLabel改行のGUI

そしてそのようにコード化されます:

    private void enterButtonHandler(java.awt.event.ActionEvent evt) {                                    
    // TODO add your handling code here:
    Confirmation.setVisible(true);
    Confirmation.setBounds(200,300,1000,400);
    Confirmation.setModal(rootPaneCheckingEnabled);
    confirmationLabel1.setText("You are about to send this message:");
    confirmationLabel2.setText("PS# " + display.getText()+ " is currently " + status);
}                                   

「ホバークラフトがウナギだらけ」で答えられた修正を説明するためのコードスニペットを次に示します。

1.)非ローカル変数/文字列を追加します:

public class PlanterStatusUI extends javax.swing.JFrame
   {
    /** Creates new form PlanterStatusUI */
    public PlanterStatusUI() {
        initComponents();
    }

    public String status = new String(); {
    }

2.)ボタンコードを変更します。

    private void shippedButtonHandler(java.awt.event.ActionEvent evt) {                                      
    // TODO add your handling code here:
    status = shippedButton.getText();
}                                     
4

2 に答える 2

1

上記のメソッドのステータス変数はすべてメソッドで宣言されているため、メソッドでのみ表示されます。メソッドが終了すると、変数はすぐに消えます。クラス自体で宣言されている StringBuilder 変数を変更することをお勧めします。

たとえば、ステータスを StringBuilder やローカル変数ではなく、クラス String フィールド/変数にして、ボタン ハンドラー メソッドを次のように変更します。

  private void outReadyButtonHandler(java.awt.event.ActionEvent evt) { 
      status = outsideReadyButton.getText();
  }                                      
于 2010-11-28T02:28:34.557 に答える
0

このは、ボタンがクリックされるたびにラベルを更新する方法を示しています。

于 2010-11-28T02:30:44.403 に答える