2014-07-10 48 views
0

我遇到過一個問題,當我想在標籤上使用setText()方法時,它不會更改標籤的文本。我搜索了很長時間,但找不到任何解決方案。 下面是代碼的示例:setText()方法不起作用(Java)

class OptionsListener implements ItemListener{ 
    public void itemStateChanged(ItemEvent e) { 
     if (optionsI1.isSelected()){ 
      lesu1.setText("8:30"); 
     } 
    } 
} 

我顯示所有我使用到另一個類的組件,正確顯示的一切。

我試圖做這樣的事情簡化了代碼:

class OptionsListener implements ItemListener{ 
    public void itemStateChanged(ItemEvent e) { 
     if (optionsI1.isSelected()){ 
      System.out.println("bla"); 
     } 
    } 

這似乎是做工精細,並顯示消息「喇嘛」。 我在這裏失蹤的任何東西?

我的元素(只顯示順序標籤和菜單的我編碼它)的聲明:

// labels // 
    lesu1 = new JLabel("1"); 
    lesu1.setBounds(8, 39, 20, 22); 

    lesu2 = new JLabel("2"); 
    lesu2.setBounds(8, 69, 20, 22); 

    lesu3 = new JLabel("3"); 
    lesu3.setBounds(8, 99, 20, 22); 

    lesu4 = new JLabel("4"); 
    lesu4.setBounds(8, 129, 20, 22); 

    lesu5 = new JLabel("5"); 
    lesu5.setBounds(8, 159, 20, 22); 

    lesu6 = new JLabel("6"); 
    lesu6.setBounds(8, 189, 20, 22); 

    lesu7 = new JLabel("7"); 
    lesu7.setBounds(8, 219, 20, 22); 

    lesu8 = new JLabel("8"); 
    lesu8.setBounds(8, 249, 20, 22); 

    dag = new JLabel("07/08"); 
    dag.setBounds(5, 15, 36, 13); 

    // menubar // 
    menu = new JMenuBar(); 

    options = new JMenu("Opties"); 

    optionsI1 = new JCheckBoxMenuItem("Weergeef de lesuren in uren"); 
    optionsI1.addItemListener(new OptionsListener()); 

    menu.add(options); 

    options.add(optionsI1); 

這是我把這些組件的順序。我也按順序將它們添加到面板中。

+3

刪除所有不必要的代碼,然後再發布 –

+0

您希望顯示此標籤的位置? –

+0

剛剛刪除它。如果你能看到大部分代碼,我認爲這會很有幫助。 – GeeSplit

回答

0

我發現問題是什麼。 我很困惑,並用一個構造函數來代替方法。這解決了它。

正如我所說:我是一個Java初學者。

+1

我建議你不要使用'null layout',swing設計用於[Layout Manager](http:/ /docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)。使用'null佈局'會使你創建編程的不良習慣,閱讀這個鏈接。雖然你在那,請閱讀[使用多個'JFrames'好,壞實踐?](http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes-good-bad-練習/ 9554657#9554657)兩者都會幫助你提高Java編程技巧:) – Frakcool

0

您的標籤lesu1沒有放在像面板的任何部件,按鈕等

添加標籤,可以一些組件上。

例如,

menu.add(lesu1);