我注意到我可以使用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