Java Swing实战(三)文本组件JTextField和密码组件JPasswordField
接下来添加文本组件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 Swing实战(三)文本组件JTextField和密码组件JPasswordField的更多相关文章
- 文本框JTextField,密码框JPasswordField
1.文本框JTextField public class Demo extends JFrame { public Demo() { setBounds(100, 100, 200, 120); se ...
- Java Swing实战(二)下拉菜单组件JComboBox及其事件监听
接下来给"数据源配置"面板添加下拉框. /** * @author: lishuai * @date: 2018/11/26 13:51 */ public class Weimi ...
- Java Swing实战(四)按钮组件JButton及其事件监听
接下来为面板添加保存按钮,并为按钮绑定事件监听. /** * @author: lishuai * @date: 2018/11/26 13:51 */ public class WeimingSyn ...
- Java Swing实战(五)表格组件JTable(1)
dbPanel面板的配置告一段落. 接下来配置taskPanel 面板. /** * @author: lishuai * @date: 2018/11/26 13:51 */ public clas ...
- Java Swing实战(一)JFrame和JTabbedPane容器
概述: 项目是一个桌面程序,涉及标签和按钮组件.布局管理器组件.面板组件.列表框和下拉框组件等组件,以及Swing事件处理机制. 下面先从最基础的界面开始. /** * @author: lishua ...
- Java-GUI基础(三)java.swing
1. 简介 swing与awt:可以认为awt是swing的前身,awt即Abstrace Window Toolkit抽象窗口工具包,swing是为了解决awt在开发中的问题而开发的,是awt的改良 ...
- Java swing: 实现ActionListener监听器的三种途径
Swing是目前Java中不可缺少的窗口工具组,是用户建立图形化用户界面(GUI)程序的 强大工具.Java Swing组件自动产生各种事件来响应用户行为.如当用户点击按钮或选择菜单项目时,Swing ...
- java Swing组件和事件处理(二)
1.BoxLayout类可以创建一个布局对象,成为盒式布局,BoxLayout在javax.Swing border 包中,java.swing 包提供一个Box类,该类也是一个类,创建的容器称作一 ...
- learning java swing 基本组件用法
import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event ...
随机推荐
- Day 38 Semaphore ,Event ,队列
什么是信号量(multiprocess.Semaphore) 互斥锁同时只允许一个线程更改数据,而信号量semaphore是同时允许一定数量的线程更改数据. 假设商场里有4个迷你唱吧 ,所以通过同时可 ...
- openstack 创建虚拟机的时候报错: Failed to allocate the network(s), not rescheduling.].
错误: 实例 "test-gtj" 执行所请求操作失败,实例处于错误状态.: 请稍后再试 [错误: Build of instance 5ea8c935-ee07-4788-823 ...
- 201621123012 《java程序设计》第5周学习总结
作业05-继承.多态.抽象类与接口 标签(空格分隔): java 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:接口,比较器,has-a,Comparator. 1.2 ...
- 通过修改EIP寄存器实现32位程序的DLL注入
功能:通过修改EIP寄存器实现32位程序的DLL注入 <如果是64位 记得自己对应修改汇编代码部分> 原理:挂起目标进程,停止目标进程EIP的变换,在目标进程开启空间,然后把相关的指令机器 ...
- 萝卜保卫战3内购破解+Toast窗口增加(Love版)
涉及到一些不同的破解的方法,以及不同的破解思路,还有一些重要权限的删除等. 作者:HAI_ 这次目标是经常玩的萝卜保卫战,不知不觉,已经更新到3了.详细分析请参考https://bbs.ichunqi ...
- elasticsearch索引目录设置
path.data and path.logs If you are using the .zip or .tar.gz archives, the data and logs directories ...
- php的GC机制
在php5.3版本之前, php变量的回收机制只是简单的通过计数来处理(当refcount=0时,会回收内存),但这样会出现一个问题 $a=array("str"); $a[]=& ...
- 【2018北京集训6】Lcm DFT&FWT
首先我们来看下此题的模数232792561. 232792561=lcm(1,2,3.......20)+1.这个性质将在求值时用到. 我们将n分解质因数,令$m$为$n$的素因子个数,设n=$\Pi ...
- 数据库MySQL(课下作业,必做)
数据库MySQL(课下作业,必做) 题目要求: 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入 ...
- Java之Socket网络编程实践
转自:http://my.oschina.net/leejun2005/blog/104955#comments 一.TCP/IP协议 既然是网络编程,涉及几个系统之间的交互,那么首先要考虑的是如何准 ...