2012-04-07 7 views
0

基本的には、 'btnCalculate'ボタンをクリックしたときに 'lblIndividualScore'のテキストを変更したいのですが、クリックするとラベルは変更されません。私はそれの直後にprintlnを置いて、すべてが正しく計算されていることを知っています...それは変わらないでしょう。ボタンのクリック後にJLabelが変更されない

以下のコード部分は、任意のアイデアですか?ここで

はアクションリスナーである

else if (e.getSource() == btnCalculate) { 
    setClassification(); 
    setTargetOrLight(); 
    setProneTotal(); 
    setStandingTotal(); 
    setKneelingTotal(); 
    setIndividualTotal(); 
} 
ここ

は、上述のようにアクションリスナーが

public void setClassification() { 
    classification = (String)cmbClassification.getSelectedItem(); 

    if (classification.equals("Senior") && target) { 
    txtProne2.setEditable(true); 
    txtKneeling2.setEditable(true); 
    txtStanding2.setEditable(true); 
    txtProne2.setVisible(true); 
    txtKneeling2.setVisible(true); 
    txtStanding2.setVisible(true); 
    lblStanding.setText("Standing"); 
    lblKneeling.setText("Kneeling"); 
    } 
    else if (classification.equals("Intermediate") || (classification.equals("Senior") && !target)) { 
    txtProne2.setEditable(false); 
    txtKneeling2.setEditable(false); 
    txtStanding2.setEditable(false); 
    txtProne2.setVisible(false); 
    txtKneeling2.setVisible(false); 
    txtStanding2.setVisible(false); 
    lblStanding.setText("Standing"); 
    lblKneeling.setText("Kneeling"); 
    } 
    else { 
    txtProne2.setEditable(false); 
    txtKneeling2.setEditable(false); 
    txtStanding2.setEditable(false); 
    txtProne2.setVisible(false); 
    txtKneeling2.setVisible(false); 
    txtStanding2.setVisible(false); 
    lblStanding.setText("Prone"); 
    lblKneeling.setText("Prone"); 
    } 
} 

public void setTargetOrLight() { 
    if (((String)cmbTarget.getSelectedItem()).equals("Target Rifle")) { 
    target = true; 
    } 
    else { 
    target = false; 
    } 
} 

public void setProneTotal() { 
    try { 
    if (classification.equals("Senior") && target) { 
     int prone1 = 0; 
     int prone2 = 0; 
     prone1 = Integer.parseInt(txtProne1.getText()); 
     prone2 = Integer.parseInt(txtProne2.getText()); 
     proneTotal = prone1 + prone2; 
    } 
    else if (classification.equals("Intermediate") || (classification.equals("Senior") && !target)) { 
     proneTotal = Integer.parseInt(txtProne1.getText()); 
    } 
    else { 
     int prone1 = Integer.parseInt(txtProne1.getText()); 
     int prone2 = Integer.parseInt(txtStanding1.getText()); 
     int prone3 = Integer.parseInt(txtKneeling1.getText()); 
     proneTotal = prone1 + prone2 + prone3; 
    } 
    } 
    catch(NumberFormatException nfe) { 
    System.err.println(nfe + ": You must enter a valid number - Prone"); 
    } 
} 

public void setStandingTotal() { 
    try { 
    if (classification.equals("Senior") && target) { 
     int standing1 = 0; 
     int standing2 = 0; 
     standing1 = Integer.parseInt(txtStanding1.getText()); 
     standing2 = Integer.parseInt(txtStanding2.getText()); 
     standingTotal = standing1 + standing2; 
    } 
    else if (classification.equals("Intermediate") || (classification.equals("Senior") && !target)) { 
     standingTotal = Integer.parseInt(txtStanding1.getText()); 
    } 
    else { 
     standingTotal = 0; 
    } 
    } 
    catch (NumberFormatException nfe) { 
    System.err.println(nfe + ": You must enter a valid number - Standing"); 
    } 
} 

public void setKneelingTotal() { 
    try { 
    if (classification.equals("Senior") && target) { 
     int kneeling1 = 0; 
     int kneeling2 = 0; 
     kneeling1 = Integer.parseInt(txtKneeling1.getText()); 
     kneeling2 = Integer.parseInt(txtKneeling2.getText()); 
     kneelingTotal = kneeling1 + kneeling2; 
    } 
    else if (classification.equals("Intermediate") || (classification.equals("Senior") && !target)) { 
     kneelingTotal = Integer.parseInt(txtKneeling1.getText()); 
    } 
    else { 
     kneelingTotal = 0; 
    } 
    } 
    catch (NumberFormatException nfe) { 
    System.err.println(nfe + ": You must enter a valid number - Kneeling"); 
    } 
} 

public void setIndividualTotal() { 
    individualTotal = proneTotal + kneelingTotal + standingTotal; 
    lblIndividualTotal.setText("" + individualTotal); 
    System.err.println(individualTotal); 
} 

を呼んで、私はその最終のprintln「System.err.println(individualTotal)を持っているスニペット。 '合計を印刷すると印刷が行われ、番号はそこに届くがlblは変更されない。

他に必要なことがある場合はお知らせください。

EDIT:setClassificationで

setTexts()メソッドでも動作しません。

答えて

2

長いコードの代わりにSSCCEを投稿してください。 JButtonが押されたときにJLabelのテキストを更新するSSCCEの例を参照してください。あなたの問題を再現するSSCCEを作成すると、あなたの問題の原因を知ることができます。そうでなければ、無関係なコード行を使用する必要はありません。

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import java.awt.EventQueue; 
import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class ChangeLabelText { 
    public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     @Override 
     public void run() { 
     JFrame frame = new JFrame("TestFrame"); 
     JPanel content = new JPanel(new FlowLayout()); 
     final JLabel label = new JLabel("Label"); 
     content.add(label); 
     JButton button = new JButton("Change text"); 
     button.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
      label.setText("Another text"); 
      } 
     }); 
     content.add(button); 
     frame.getContentPane().add(content); 
     frame.pack(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
     } 
    }); 
    } 
} 
+0

+2いい例:-) –

関連する問題