博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Swing实战(三)文本组件JTextField和密码组件JPasswordField
阅读量:5815 次
发布时间:2019-06-18

本文共 4017 字,大约阅读时间需要 13 分钟。

接下来添加文本组件JTextField和密码组件JPasswordField。

/** * @author: lishuai * @date: 2018/11/26 13:51 */public class WeimingSyncApplets {    public static void main(String[] args) {        // 面板组件        JPanel taskPanel = new JPanel();        JPanel dbPanel = new JPanel();        JTabbedPane tabbedPane = buildJTabbedPane(taskPanel, dbPanel);        buildFrame(tabbedPane);    }    private static JTabbedPane buildJTabbedPane(JPanel taskPanel, JPanel dbPanel) {        // 选项卡面板        JTabbedPane tabbedPane = new JTabbedPane();        // 通过BorderFactory来设置边框的特性        tabbedPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));        tabbedPane.add("执行任务", taskPanel);        tabbedPane.add("数据源配置", dbPanel);        // 下拉框        dbPanel.add(buildJLabel("数据库类型", 10, 20, 80, 25));        String dbs[] = {"mysql", "oracle", "sqlserver"};        dbPanel.add(buildJComboBox("mysql", "mysql", dbs, 0, 100, 20, 165, 25));        // 文本框        dbPanel.add(buildJLabel("用户名", 10, 50, 80, 25));        JTextField dbUserName = buildJTextField("dbUserName", "dbUserName", 20, 100, 50, 165, 25);        dbPanel.add(dbUserName);        // 密码        dbPanel.add(buildJLabel("密码", 10, 80, 80, 25));        JPasswordField dbPassWord = buildJPasswordField("dbPassWord", "dbPassWord", 20, 100, 80, 165, 25);        dbPanel.add(dbPassWord);        return tabbedPane;    }    private static JPasswordField buildJPasswordField(String defaultValue, String name, int columns, int x, int y, int width, int height) {        JPasswordField jPasswordField = new JPasswordField(columns);        jPasswordField.setText(defaultValue);        jPasswordField.setName(name);        jPasswordField.setBounds(x, y, width, height);        return jPasswordField;    }    private static JTextField buildJTextField(String defaultValue, String name, int columns, int x, int y, int width, int height) {        JTextField text = new JTextField(columns);        text.setText(defaultValue);        text.setName(name);        text.setBounds(x, y, width, height);        return text;    }    private static JComboBox buildJComboBox(Object selectedItem, String name, String[] elements, int selectedIndex, int x, int y, int width, int height) {        DefaultComboBoxModel codeTypeModel = new DefaultComboBoxModel();        // elements 下拉框中的选项        for (String element : elements) {            codeTypeModel.addElement(element);        }        JComboBox codeTypeBox = new JComboBox(codeTypeModel);        codeTypeBox.setName(name);        // 默认选中的下拉框选项        codeTypeBox.setSelectedItem(selectedItem);//        codeTypeBox.setSelectedItem(selectedIndex);        codeTypeBox.setBounds(x, y, width, height);        // 添加下拉框事件监听器        codeTypeBox.addItemListener(new ItemListener() {            @Override            public void itemStateChanged(ItemEvent e) {                if (e.getStateChange() == ItemEvent.SELECTED) {                    // 选择的下拉框选项                    System.out.println(e.getItem());                }            }        });        return codeTypeBox;    }    private static JLabel buildJLabel(String name, int x, int y, int width, int height) {        JLabel label = new JLabel(name);        label.setBounds(x, y, width, height);        return label;    }    private static void buildFrame(JComponent component) {        // 窗体容器        JFrame frame = new JFrame("数据同步工具");        frame.add(component);        //  JFrame.EXIT_ON_CLOSE  退出        //  JFrame.HIDE_ON_CLOSE  最小化隐藏        frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);        // 设置布局        frame.getContentPane().setLayout(new BorderLayout());        frame.getContentPane().add(BorderLayout.CENTER, component);        // 设置窗口最小尺寸        frame.setMinimumSize(new Dimension(1060, 560));        // 调整此窗口的大小,以适合其子组件的首选大小和布局        frame.pack();        // 设置窗口相对于指定组件的位置        frame.setLocationRelativeTo(null);        frame.setVisible(true);        // 设置窗口尺寸是否固定不变        frame.setResizable(true);    }}

效果如图:

1438115-20181218224336631-91586953.png

转载于:https://www.cnblogs.com/pianistedward/p/10140649.html

你可能感兴趣的文章
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
淘宝NPM镜像cnpm
查看>>
01-构造和运行模块
查看>>
opennebula 开发记录
查看>>
ubuntu 修改hostname
查看>>
【译】UNIVERSAL IMAGE LOADER.PART 2---ImageLoaderConfiguration详解
查看>>
javascript call()
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
6、Web Service-拦截器
查看>>
面试题: 数据库 oracle数据库 已看1 意义不大 有用
查看>>
Flask 源码流程,上下文管理
查看>>
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
查看>>
ffmpeg相关资源
查看>>
ZAB与Paxos算法的联系与区别
查看>>
java 读取本地的json文件
查看>>