2013-03-23 30 views
-2

我有一個在的Java Swing開發的應用程序和NetBens 7 IDE動態更改文字和JButton的背景

步驟:

  1. 我想用一個JButton執行兩個不同功能取決於用戶模式。 比如我要標註一個按鈕與下面的文字「新紀錄」和 「退出新紀錄」

  2. 默認文本是「新紀錄」。這將使用戶輸入新的記錄。

  3. 在新記錄模式下,jButton上的文本更改爲「退出新記錄」。 要退出新記錄模式,用戶單擊同一個按鈕退出。

  4. 那麼這將改變按鈕,將默認的文本輸入「輸入新記錄」

是否有關於如何使用NetBeans IDE中做到這一點的任何建議或我手動 覆蓋方法?

+0

您需要在事件偵聽器代碼中的某些情況下更改按鈕上的文本。 – 2013-03-23 08:05:16

+0

使用兩個按鈕,根據當前模式在那裏設置可見性狀態 – MadProgrammer 2013-03-23 08:13:17

+0

無論您使用什麼編輯源文件,您使用netbeans IDE的相關事實如何,java是java。然而,要做你想做的事情,你可以使用buttonName.setText(「text here」); – w4etwetewtwet 2013-03-23 08:18:16

回答

1

上的JButton實現動作偵聽器(代碼沒有測試,只爲你提示):

public class MyButton extends JButton implements ActionListener{ 
boolean pressed = false; 
public MyButton(String name){ 
    super(name); 
    this.addActionListener(this); 
    } 
@Override 
public void actionPerformed(ActionEvent e){ 
    if(pressed){ 
    pressed = !pressed; 
    _change_text_on_button_ 
    _do_job_ 
    } 
} 

不是使用定製myButton的。

+1

否:a)不要繼承JSomething b)覆蓋actionPerformed將會產生嚴重的sid效果。相反,使用自定義操作配置按鈕,並在適當時更改該操作的名稱屬性 – kleopatra 2013-03-23 10:28:08

+0

@kleopatra不能繼承JButton(或任何其他swing組件?)?你可以發佈一些代碼的子類JButton和覆蓋actionPerformed()有一些副作用? – 1ac0 2013-03-23 10:51:20

+0

我的第一個評論並不完全正確:假設actionPerfomed是AbstractButton中的一個方法,實際上它的actionListener是在myButton中實現的 - 所以沒有副作用,只是簡單的廢話:-)想想這個:你是什麼希望在點擊按鈕時發生?會發生什麼?道德:使用組件,因爲它們應該被使用... – kleopatra 2013-03-23 11:16:06