Java 正在尝试为文本字段设置文本
我目前正在学校的一个团队项目中工作,在fieldMap中的textFields上设置Text()时遇到困难。我可以使用fieldMap.get(fieldTitle.values()[I])从这些字段中获取值,但由于我对哈希映射和GBC缺乏了解,我无法确定如何将文本设置到文本字段Java 正在尝试为文本字段设置文本,java,swing,hashmap,jtextfield,Java,Swing,Hashmap,Jtextfield,我目前正在学校的一个团队项目中工作,在fieldMap中的textFields上设置Text()时遇到困难。我可以使用fieldMap.get(fieldTitle.values()[I])从这些字段中获取值,但由于我对哈希映射和GBC缺乏了解,我无法确定如何将文本设置到文本字段 class InstructorEditorPanel extends JPanel { enum FieldTitle { B_NUMBER("B Number"), FIRST_NAME("First Name
class InstructorEditorPanel extends JPanel {
enum FieldTitle {
B_NUMBER("B Number"), FIRST_NAME("First Name"), LAST_NAME("Last Name");
private String title;
private FieldTitle(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
};
private static final Insets WEST_INSETS = new Insets(5, 0, 5, 5);
private static final Insets EAST_INSETS = new Insets(5, 5, 5, 0);
private Map<FieldTitle, JTextField> fieldMap = new HashMap<FieldTitle, JTextField>();
public InstructorEditorPanel() {
setLayout(new GridBagLayout());
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Instructor Editor"),
BorderFactory.createEmptyBorder(5, 5, 5, 5)));
GridBagConstraints gbc;
for (int i = 0; i < FieldTitle.values().length; i++) {
FieldTitle fieldTitle = FieldTitle.values()[i];
gbc = createGbc(0, i);
add(new JLabel(fieldTitle.getTitle() + ":", JLabel.LEFT), gbc);
gbc = createGbc(1, i);
JTextField textField = new JTextField(10);
add(textField, gbc);
fieldMap.put(fieldTitle, textField);
}
}
private GridBagConstraints createGbc(int x, int y) {
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = 1;
gbc.gridheight = 1;
gbc.anchor = (x == 0) ? GridBagConstraints.WEST : GridBagConstraints.EAST;
gbc.fill = (x == 0) ? GridBagConstraints.BOTH
: GridBagConstraints.HORIZONTAL;
gbc.insets = (x == 0) ? WEST_INSETS : EAST_INSETS;
gbc.weightx = (x == 0) ? 0.1 : 1.0;
gbc.weighty = 1.0;
return gbc;
}
public String getFieldText(FieldTitle fieldTitle) {
return fieldMap.get(fieldTitle).getText();
}
class InstructorEditorPanel扩展了JPanel{
枚举字段标题{
B_编号(“B编号”)、名(“名字”)、姓(“姓氏”);
私有字符串标题;
私有字段标题(字符串标题){
this.title=标题;
}
公共字符串getTitle(){
返回标题;
}
};
私人静态最终插图西侧插图=新插图(5,0,5,5);
私有静态最终插图东_插图=新插图(5,5,5,0);
private Map fieldMap=new HashMap();
公共讲师编辑面板(){
setLayout(新的GridBagLayout());
SetBordOrder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder(“讲师编辑器”),
createEmptyByOrder(5,5,5,5));
gridbaggbc;
对于(int i=0;i
使用
使用
只是出于对称性原因猜测:
public void setFieldText (FieldTitle fieldTitle, String toSet) {
fieldMap.get (fieldTitle).setText (toSet);
}
您可以将该方法放入您的InstructorEditorPanel中,另一个方法在其中。要调用它,您必须访问该类的内部枚举:
public class TestFrame extends JFrame {
public TestFrame () {
super ("testframe");
setSize (400, 400);
setVisible (true);
}
public static void main (String [] args)
{
InstructorEditorPanel iep = new InstructorEditorPanel ();
TestFrame tf = new TestFrame ();
tf.add (iep);
iep.setFieldText (InstructorEditorPanel.FieldTitle.FIRST_NAME, "Donald");
}
}
经过测试,成功了。只是出于对称性的原因猜测:
public void setFieldText (FieldTitle fieldTitle, String toSet) {
fieldMap.get (fieldTitle).setText (toSet);
}
您可以将该方法放入您的InstructorEditorPanel中,另一个方法在其中。要调用它,您必须访问该类的内部枚举:
public class TestFrame extends JFrame {
public TestFrame () {
super ("testframe");
setSize (400, 400);
setVisible (true);
}
public static void main (String [] args)
{
InstructorEditorPanel iep = new InstructorEditorPanel ();
TestFrame tf = new TestFrame ();
tf.add (iep);
iep.setFieldText (InstructorEditorPanel.FieldTitle.FIRST_NAME, "Donald");
}
}
已测试,已工作。如果必须在文本字段中设置文本,请调用该文本字段上的方法 因为您已经通过调用
fieldMap.get(fieldTitle.values()[i])
您可以通过调用setText方法设置文本,如:
fieldMap.get(fieldTitle.values()[i]).setText('Something');
如果必须在文本字段中设置文本,则调用该文本字段上的方法 因为您已经通过调用
fieldMap.get(fieldTitle.values()[i])
您可以通过调用setText方法设置文本,如:
fieldMap.get(fieldTitle.values()[i]).setText('Something');
显示您调用setText()的尝试显示您调用setText()的尝试这就是我试图做的;但是,我试图从另一个类设置textfields文本。因此,我无法从枚举中读取fieldTitle信息。我遇到找不到符号错误/访问枚举时,需要执行以下操作:InstructorEditorPanel.fieldTitle.values()这就是我试图做的;但是,我试图从另一个类设置textfields文本。因此,我无法从枚举中读取fieldTitle信息。我遇到找不到符号错误/访问枚举时,需要执行以下操作:InstructorEditorPanel.fieldTitle.values()这是我最初所做的,但变量fieldTitle不能从另一个类中使用。它给我一个找不到符号错误。这是我最初所做的,但变量fieldTitle不能从另一个类中使用。它给我一个找不到符号错误。