cregithar 2020-11-07 20:45 采纳率: 78.9%
浏览 738

javaSwing中JTextField设置文本框内文字

现在有个界面,上面有个文本框,属性名为"tf"

public class test2 extends JFrame {

	//饿汉式单例,这个不重要
	public static test2 instance = new test2();
	
	//现在有一个JTextField
	public JTextField tf = new JTextField("修改前\t该文本框字段名为'tf'");
	
	private test2() {
		//简单设置一下
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		getContentPane().setLayout(null);
		setLocationRelativeTo(null);
		setTitle("测试界面2");

		tf.setBounds(15,65,398,95);
		tf.setFont(new Font("宋体", Font.PLAIN, 22));
		
		getContentPane().add(tf);
	}
	
	public static void main(String[] args) {
		instance.setVisible(true);
	}

}

//测试修改文本框里的文字
public class test{
	public static void main(String[] args) {
		
		// 目的:通过取得文本框的名字来对该文本框进行setText操作
		
		//测试界面的实例
		test2 f = test2.instance;

		//现已经知道该文本框属性名--放在一个String中
                //限制:该属性名是存在字符串中的,所以直接通过对象调用不行
		String str = "tf";

                //我的尝试:想通过反射,发现不行
		try {
			//通过反射取得这个文本框属性
			Field field = f.getClass().getField(str);
			
			//发现直接set不行,我要修改的是文本框里的文字
			field.set(f,"修改/增加后插入的值");

		} catch (Exception e) {
			e.printStackTrace();
		} 
		f.setVisible(true);
	}
		
	
}

有其他办法吗

  • 写回答

1条回答 默认 最新

  • 关注

    你直接test2.tf就能拿到那个文本框
    test2.tf.setText(“新的文字”)

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题