JTextField实现默认提示

<pre name="code" class="java">import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyLoginFrame extends JFrame {
    public static void main(String[] args) {
        new MyLoginFrame();
    }
    // jdk版本1.8测试通过.如果是1.8以下版本,有可能需要把变量修改成final类型的
    JButton jb1, jb2;
    JTextField jtf1, jtf2;
    public MyLoginFrame() {// 初始化界面
        JPanel jp1 = new JPanel();
        JLabel jl1 = new JLabel("账号:", SwingConstants.CENTER);// 文字居中
        jtf1 = new JTextField(10);
        jp1.add(jl1);
        jp1.add(jtf1);
        JPanel jp2 = new JPanel();
        JLabel jl2 = new JLabel("密码:", SwingConstants.CENTER);
        jtf2 = new JTextField(10);
        jp2.add(jl2);
        jp2.add(jtf2);
        JPanel jp3 = new JPanel();
        jb1 = new JButton("确定");
        jb2 = new JButton("取消");
        jp3.add(jb1);
        jp3.add(jb2);
        setLayout(new GridLayout(3, 1, 20, 10));// 表格布局 3行1列 水平间距20 垂直间距10
        add(jp1);
        add(jp2);
        add(jp3);
        this.setSize(230, 170);// 大小
        setLocationRelativeTo(null);// 居中
        this.setResizable(false);// 不可缩放
        this.setTitle("LoginFrame");// 标题名
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);// 退出就关闭界面
        this.setVisible(true);
        String info1 = "请输入 [账号]";
        String info2 = "请输入 <密码>";
        jtf1.setText(info1);
        jtf2.setText(info2);
        jtf1.addFocusListener(new MyFocusListener(info1, jtf1));//添加焦点事件反映
        jtf2.addFocusListener(new MyFocusListener(info2, jtf2));
    }
}
class MyFocusListener implements FocusListener {
    String info;
    JTextField jtf;
    public MyFocusListener(String info, JTextField jtf) {
        this.info = info;
        this.jtf = jtf;
    }
    @Override
    public void focusGained(FocusEvent e) {//获得焦点的时候,清空提示文字
        String temp = jtf.getText();
        if(temp.equals(info)){
            jtf.setText("");
        }
    }
    @Override
    public void focusLost(FocusEvent e) {//失去焦点的时候,判断如果为空,就显示提示文字
        String temp = jtf.getText();
        if(temp.equals("")){
            jtf.setText(info);
        }
    }
}


 
 


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一元二次方程求根的界面设计,包括标签、文本框、按钮和结果文本框: ```java import javax.swing.*; import java.awt.*; public class QuadraticEquationUI { public static void main(String[] args) { // 创建 JFrame 实例 JFrame frame = new JFrame("一元二次方程求根"); // 设置窗口大小 frame.setSize(400, 200); // 设置窗口关闭时的默认操作 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建面板,用于组织界面元素 JPanel panel = new JPanel(new GridLayout(4, 2)); // 添加系数 a 的标签和文本框 JLabel labelA = new JLabel("a:"); JTextField textFieldA = new JTextField(); panel.add(labelA); panel.add(textFieldA); // 添加系数 b 的标签和文本框 JLabel labelB = new JLabel("b:"); JTextField textFieldB = new JTextField(); panel.add(labelB); panel.add(textFieldB); // 添加系数 c 的标签和文本框 JLabel labelC = new JLabel("c:"); JTextField textFieldC = new JTextField(); panel.add(labelC); panel.add(textFieldC); // 添加结果显示文本框 JLabel labelResult = new JLabel("结果:"); JTextField textFieldResult = new JTextField(); textFieldResult.setEditable(false); panel.add(labelResult); panel.add(textFieldResult); // 添加计算按钮 JButton buttonCompute = new JButton("计算"); panel.add(buttonCompute); // 添加清空按钮 JButton buttonClear = new JButton("清空"); panel.add(buttonClear); // 将面板添加到窗口中 frame.getContentPane().add(panel); // 显示窗口 frame.setVisible(true); } } ``` 界面中包括系数 a、b、c 的标签和文本框,以及结果显示文本框、计算按钮和清空按钮。使用 `JPanel` 组织这些界面元素,使用 `GridLayout` 确定元素排列方式。其中,计算按钮和清空按钮暂时未实现功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值