java 窗体程序swing
来源:互联网 发布:银行卡盗刷软件 编辑:程序博客网 时间:2024/05/05 06:41
以下代码是修改他人的源码,增加一些注释。
利用以下的功能基本可以写一个小的窗体程序了。
package test2;import java.awt.BorderLayout;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.util.Arrays;import java.util.List;import javax.swing.AbstractAction;import javax.swing.Action;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.SwingUtilities;import javax.swing.UIManager; /** * @author Administrator * */public class MyFrameTow extends JPanel {private static final String LABEL_USERNAME = "用户账号:";private static final String LABEL_PASSWORD = "用户密码:";private static final String LABEL_OK = "确定";private static final String LABEL_Cancel = "取消";private static final int FIELD_COLS = 20;private JTextField fieldUsername;private JPasswordField fieldPassword;private Action actionOK;private Action actionCancel;public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());} catch (Exception e) {e.printStackTrace();}JFrame test = new JFrame("欢迎进入本系统");test.setContentPane(new MyFrameTow());test.pack();test.setResizable(false);test.setLocationRelativeTo(null);test.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);test.setVisible(true);}});}MyFrameTow() {super(new BorderLayout(5, 5));assert SwingUtilities.isEventDispatchThread();// 文本框fieldUsername = new JTextField(FIELD_COLS);// 密码框fieldPassword = new JPasswordField(FIELD_COLS);actionOK = new AbstractAction(LABEL_OK) {@Overridepublic void actionPerformed(ActionEvent e) {// @TODO to be implemented. 实现确认按钮的操作//TODOString text = fieldUsername.getText();if (text.isEmpty()) {JOptionPane.showMessageDialog(null, "用户名不能为空!", "提示", JOptionPane.ERROR_MESSAGE);return;}JOptionPane.showMessageDialog(null, "这是一个假登录"+text, "提示", JOptionPane.ERROR_MESSAGE); }};actionCancel = new AbstractAction(LABEL_Cancel) {@Overridepublic void actionPerformed(ActionEvent e) {// @TODO to be implemented. 实现取消按钮的操作//退出程序System.exit(0);}};// BorderLayout.NORTH 这是指定向北浮动add(layoutText(Arrays.asList( "第一行文字", "第二行文字", "第三行文字")), BorderLayout.NORTH);add(layoutFields(), BorderLayout.CENTER);add(layoutControl(), BorderLayout.SOUTH);setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));}private JComponent layoutControl() {// 控件布局 JComponent result = new JPanel();// 这里是确认 和 取消的按钮result.add(new JButton(actionOK));result.add(new JButton(actionCancel));return result;}private JComponent layoutFields() {// 布局位置JComponent result = new JPanel(new GridBagLayout());GridBagConstraints gbc = new GridBagConstraints();gbc.gridx = 0;gbc.gridy = 0;//固定 向西gbc.anchor = GridBagConstraints.WEST;//是否填充 gbc.fill = GridBagConstraints.NONE;gbc.insets = new Insets(5, 5, 5, 5);//加入文字描述result.add(new JLabel(getBoldHTML(LABEL_USERNAME)), gbc);gbc.gridy++;result.add(new JLabel(getBoldHTML(LABEL_PASSWORD)), gbc);gbc.gridx++;gbc.gridy = 0;gbc.fill = GridBagConstraints.HORIZONTAL;result.add(fieldUsername, gbc);gbc.gridy++;result.add(fieldPassword, gbc);return result;}private JComponent layoutText(List<String> lines) {assert lines != null;JComponent result = new JPanel(new GridLayout(lines.size(), 1));for (String line : lines)result.add(new JLabel(line));result.setBorder(BorderFactory.createEmptyBorder(5, 10, 0, 10));return result;}private String getBoldHTML(String s) {// 设置字体的大小粗细return "<html><b>" + s + "</b></html>";}}
0 0
- java 窗体程序swing
- Java Swing 窗体居中
- java Swing 窗体设计
- Java swing 窗体居中
- java swing窗体圆角
- java-swing-设置窗体大小
- Java swing开发|Java实现窗体隐藏
- java swing抽奖程序
- JAVA SWING第一个窗体应用程序
- 如何使窗体自适应分辨率java swing
- 关于Java Swing中的透明窗体
- Java Swing 之设置窗体背景图片
- 【Java基础】Swing设计_1:常用窗体
- Java Swing 只关闭当前窗体
- Java设置Swing窗体居中显示
- java-swing-动态调整窗体大小
- JAVA Swing学习之窗体文本显示
- Java图形界面Swing之窗体居中设置
- npm 包下载很慢的解决办法
- 记录一次mysql从库恢复并开启主从复制的过程
- SQL中的循环、for循环、游标
- crontab命令
- 缺省构造器constructor和自定义构造器,构造器重载
- java 窗体程序swing
- web.xml配置详解
- 网站跨站点单点登录
- (转)招行开启零售银行智能投顾时代 尝试打造金融垂直自场景
- <转>一致性非锁定读与一致性锁定读
- 获取某周、某月、上月、某季度的开始日期、结束日期及判断日期第几周(注意:月份从零开始)
- 反思当年带人的一些得失
- 2017-01-19 计算机网络和因特网-网络核心 下 ISP互联、丢包、时延、协议分层
- mysql导出库结构和表数据