簡體   English   中英

Java中的GUI ..生成運行時組件

[英]GUI in Java.. generating a run time component

我有一個用戶界面,用戶可以在文本輸入框中輸入數字(例如10),然后如果用戶按Enter,則我希望在同一用戶界面中生成10個文本輸入。

我怎樣才能做到這一點?

像這樣:

// Assuming myOrigTextField is your original JTextField
int howMany = Integer.parseInt(myOrigTextField.getText());
JTextField[] jtfs = new JTextField[howMany];

for (int i = 0; i < jtfs.length; ++i) {
   jtfs[i] = new JTextField();
   myPanelToAddThem.add(jtfs[i]);
}

創建文本字段對象,將其添加到您的容器中。

使用循環可對任意數字執行此操作。

發布一些代碼和您的特定問題以獲得更多幫助。

大概假設您正在使用布局管理器,我這樣說:

public List<JTextField> addComponents( int number ) {
    List<JTextField> fields = new ArrayList<JTextField>( number );
    for( int i = 0; i < number; i++ ) {
        fields.add( new JTextField() );
        panelToAddComponentsTo.add( fields.get( i ) );
    }
    return fields;
}

如果用戶按下Enter,我要嗎? 在同一用戶界面中生成的文本字段

您將一個ActionListener添加到文本字段。 當按下Enter鍵時,將調用ActionListener。

在ActionListener代碼中,您需要解析輸入的數字,然后循環以創建文本字段並將其添加到面板中:

for (...)
{
    panel.add( new JTextField(...) );
}

panel.revalidate(); // needed when dynamically adding/removing components
panel.repaint(); // sometimes needed

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM