我注意到我可以使用getName()作爲技巧的一部分。 What is java.awt.Component.getName() and setName() used for? 但我真的不知道從哪裏開始。我應該使用什麼類型的監聽器(假設文本字段/或箱當前閃爍/選擇)設置重點爲所有字段
這是我剛纔的問題,並感謝您的幫助球員。 How do I use requestFocus in a Java JFrame GUI?
我意識到對於我創建的每個組件(Textfield),我必須插入一個像requestFocus(或使用transferFocus)的語句。 是否可以將此政策應用於所有字段???
我有幾個文本框和組合框。我遇到的問題是我不想爲每個字段/框編寫方法。
例如,我寫這樣
private JTextField getFirstNameEntry() {
.... do something
}
的方法,因爲我的老師這樣
private JPanel getJContentPane() {
jContentPane = new JPanel();
jContentPane.setLayout(new java.awt.FlowLayout(FlowLayout.LEADING));
jContentPane.add(makeLabel(" First Name *", 100, 20));
jContentPane.add(getFirstNameEntry(), null);
jContentPane.add(makeLabel(" Middle Initial", 100, 20));
jContentPane.add(getMiddleInitialEntry(), null);
// etc
return jContentPane;
寫他的計劃。然而,爲了節省冗餘(這是我的第一動機),說我有一個框,我可以簡單地在上面的方法中添加以下代碼:getJContentPane()
titleBox = new JComboBox(new String[]{"Mr.","Mrs.","Ms.","Dr.","Prof.","Rev."});
jContentPane.add(titleBox);
但這樣做,我還需要創建辦addItemListener
private void setComboBoxFocus() {
titleBox.addItemListener(
new ItemListener(){
public void itemStateChanged(ItemEvent e){
if(e.getStateChange() == ItemEvent.SELECTED)
{
String titleSelected = titleBox.getSelectedItem().toString();
System.out.println(titleSelected);
titleBox.transferFocus();
}
}
});
}
的方法。然而,這並不能真正救冗餘的。如果我添加了多個ComboBox,我將不得不編寫另一個類似的方法。事實上,即使在一個ComboBox(titleBox)的情況下,我仍然會爲titleBox寫一個方法。
所以我的問題是:有沒有辦法編寫一個可以調用焦點的一般方法(也許一個組合框類型)?
謝謝你,對於這篇長文章感到抱歉。
謝謝!有用。你是對的。我對java很陌生(2年來一直是C++學生)...我很擔心這個人...希望我能儘快找到java。 – CppLearner 2011-02-12 00:34:29