接下来添加文本组件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);

}

}

效果如图:

java jtextfield 密码_Java Swing实战(三)文本组件JTextField和密码组件JPasswordField相关推荐

  1. java 文本框只能输入数字_java swing 怎么设置文本框只能输入数字

    展开全部 java swing中利用JFormattedTextField的控件加keyReleased能实现,以下实现的只能输入数字的62616964757a686964616fe58685e5ae ...

  2. java jbutton文字_JAVA swing JLabel JButton标签文本文字内容的换行

    package hj.exam.fram; import javax.swing.*; public class test extends JFrame { private JButton butto ...

  3. java null布局_Java Swing 绝对布局管理方法,null布局

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.Container; import java.awt.Dimension; import java.awt.Rectang ...

  4. java 游戏视频_Java swing实现的小游戏24点游戏源码附带视频指导教程

    大家好,今天给大家演示一下由Java swing实现的一款小游戏24点,该游戏实现了以下功能:输入用户名新建一个游戏,练习模式,可以给那些不太明白24点规则的用户用来练习,排名查看,每次进入新的游戏会 ...

  5. java queue 清空_java swing清除事件队列

    可以以标准方式执行此操作吗? 这是场景. 开始在EDT中执行一些昂贵的操作(EDT被阻止,直到昂贵的操作结束为止). 在阻止EDT的同时,用户继续单击/拖动鼠标按钮.所有鼠标动作都记录在某处. 当ED ...

  6. c java socket编程_java+swing C/s模式的socket编程与长短连接

    java+swing C/s模式的socket编程与长短连接 什么是socket 长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要 ...

  7. java 皮肤包_Java swing图书管理系统无注释美化皮肤包版1:含SQL部分和效果图

    SQL: select ts_shuliang,jnum from tushu t join jieyue j on t.ts_id=j.ts_id where j.ts_id='1' j.ts_id ...

  8. java多线程系列_Java多线程实战系列

    多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术. [1] 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能.具有这 ...

  9. java监控任务进度_Java Swing组件实现进度监视功能示例

    本文实例讲述了java swing组件实现进度监视功能.分享给大家供大家参考,具体如下: 实例一: import java.awt.event.actionevent; import java.awt ...

最新文章

  1. Google经典面试题解析
  2. 设计模式学习笔记——访问者模式(VIsitor)
  3. 怎么计算网站高峰期并发量和所需的带宽?
  4. Zuul使用正则表达式指定路由规则
  5. 认识适配器:JSON绑定概述系列
  6. 大数据学习笔记23:MR案例——采用Combiner做词频统计
  7. c位边上还有什么位_会议桌C位,是它!
  8. 相对位置的渐变 html,沿HTML5画布路径的连续渐变
  9. git:致命的:无法从远程存储库读取
  10. C++基础知识面试精选100题系列(21-30)[C++ basics]
  11. Cocoa 获取一个独特的电脑硬件ID (A unique hardware id)
  12. 什么是软件项目管理中的WBS?
  13. C语言之三种基本结构
  14. 【xtku】铜雀台张馨予xp主题_8.2
  15. “窗体”工具栏控件和“控件工具箱”控件基础
  16. Android MVP详解
  17. 东华理工大学计算机网络期末考试试卷,东华理工大学计算机网络计算题
  18. ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL、DBA必备)
  19. 【无标题】问题记录—— (掌阅)
  20. 微信解除自定义表情150个上限?

热门文章

  1. bootstrap学习记录
  2. java线程池原理简答_面试官让我讲讲Java线程池的实现原理,我笑了...
  3. Java多线程Queue_Java多线程-BlockingQueue-ArrayBlockingQueue-LinkedBlockingQueue
  4. 设计一台模型计算机 实现下列指令系统,基本模型机的设计与实现1
  5. 第一篇 Windows 8 开发Windows Metro style app环境配置
  6. springBoot整合rabbitmq并测试五种常用模型
  7. DIV+CSS常见错误汇总
  8. 安装logstash7.3.2遇到的坑及解决方案
  9. 北大AI第八讲 李航 自然语言处理的现实与挑战--李航 VS 雷鸣 对话全文
  10. 计算机出现全部英文如何解决,电脑打开后出现很多英文怎么处理