2016.3.11(Java图形用户界面)

Swing程序的建立步骤

1 建立容器
2 建立组件
3 将组建添加都容器
4 设置布局

public class SimpleFrame extends JFrame {

private int width;
private int height;
private Container contentP;
private JLabel usernameLabel;
private JLabel passwordLabel;
private JTextField usernameField;
private JPasswordField passwordField;
private JRadioButton maleBtn;
private JRadioButton femaleBtn;
private JCheckBox hobbyCheckBox1;
private JCheckBox hobbyCheckBox2;
private JCheckBox hobbyCheckBox3;
private JComboBox addressCombBox;
private JTextArea describeTextArea;
private JButton submitBtn;
private JButton cancelBtn;

public SimpleFrame() {
this.width = 1024;
this.height = 600;
this.setTitle("我的第一个GUI窗体");
this.setSize(this.width, this.height);
Toolkit tool = Toolkit.getDefaultToolkit();
double width = tool.getScreenSize().getWidth();
double height = tool.getScreenSize().getHeight();
this.setLocation((int) (width - this.width) / 2,
(int) (height - this.height) / 2);

this.setIconImage(tool.createImage("img/logo.png"));

// this.setLocationRelativeTo(null);//设置窗体居中
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.addContent();

this.setVisible(true);
}

public void addContent() {
this.contentP = this.getContentPane();
this.contentP.setLayout(null);

//文本 和 输入框
this.usernameLabel = new JLabel("用户名");
this.usernameLabel.setBounds(350, 10, 90,35);
this.usernameLabel.setFont(new Font("宋体", Font.PLAIN, 16));
this.contentP.add(this.usernameLabel);//添加文本组件

this.usernameField = new JTextField();
this.usernameField.setBounds(450, 10, 200,35);
this.contentP.add(this.usernameField);

this.passwordLabel = new JLabel("密 码");
this.passwordLabel.setBounds(350, 60, 90,35);
this.passwordLabel.setFont(new Font("宋体", Font.PLAIN, 16));
this.contentP.add(this.passwordLabel);//添加文本组件

//密码框
this.passwordField = new JPasswordField();
this.passwordField.setBounds(450, 60, 200,35);
this.passwordField.setEchoChar(‘*‘);
// this.passwordField.setForeground(Color.RED);
this.contentP.add(this.passwordField);

//单选框
JLabel genderTitle = new JLabel("性别");
genderTitle.setBounds(350, 110, 80, 30);
genderTitle.setFont(new Font("宋体", Font.PLAIN, 16));
this.contentP.add(genderTitle);

this.maleBtn = new JRadioButton("男");
this.maleBtn.setBounds(440, 110, 50,35);
this.contentP.add(this.maleBtn);
this.femaleBtn = new JRadioButton("女");
this.femaleBtn.setBounds(500, 110, 50,35);
this.contentP.add(this.femaleBtn);
ButtonGroup bp = new ButtonGroup();
bp.add(this.maleBtn);
bp.add(this.femaleBtn);

//复选框
this.hobbyCheckBox1 = new JCheckBox("运动");
this.hobbyCheckBox2 = new JCheckBox("电影");
this.hobbyCheckBox3 = new JCheckBox("音乐");
this.hobbyCheckBox1.setBounds(350, 160, 80,35);
this.hobbyCheckBox2.setBounds(440, 160, 80,35);
this.hobbyCheckBox3.setBounds(540, 160, 80,35);

this.contentP.add(this.hobbyCheckBox1);
this.contentP.add(this.hobbyCheckBox2);
this.contentP.add(this.hobbyCheckBox3);

//下拉框
this.addressCombBox = new JComboBox(new String[]{"成都", "德阳", "绵阳", "乐山", "资阳"});
this.addressCombBox.addItem("达州");
this.addressCombBox.addItem("自贡");
this.addressCombBox.setSelectedIndex(5);
this.addressCombBox.setBounds(350, 210, 120, 25);
this.contentP.add(this.addressCombBox);

//文本域
this.describeTextArea = new JTextArea();
this.describeTextArea.setBounds(350, 250, 300, 100);
// this.describeTextArea.setColumns(5);
// this.describeTextArea.setRows(3);
this.describeTextArea.setBorder(BorderFactory.createLineBorder(Color.BLACK));
this.contentP.add(this.describeTextArea);

//按钮
this.submitBtn = new JButton("确定");
this.submitBtn.setBounds(400, 400, 80, 30);
this.contentP.add(this.submitBtn);

this.cancelBtn = new JButton("取消");
this.cancelBtn.setBounds(500, 400, 80, 30);
this.contentP.add(this.cancelBtn);

}

时间: 2024-12-24 03:38:03

2016.3.11(Java图形用户界面)的相关文章

2016.3.16(Java图形用户界面)

边界布局 public class BorderLayoutTest extends JFrame{ public BorderLayoutTest(){ this.setSize(900,600); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("边界布局"); this.setLocationRelativeTo(null);//设置窗体居中 this.addContent(); this.se

java图形用户界面程序

GUI(Graphical User Interface) 定义:一个程序中,用户可以可以看见和与之交流的部分. 支持图形用户界面的两套组件: 1,AWT 2,Swing 建立步骤: 建立容器-建立组件-将组件添加到容器-设置布局 Swing中的重量级容器: 继承自AWT中的Container类,为其他容器和组件提供绘制位置 有JFrame,JDialog,JWindow,JApplet; Swing中的轻量级容器: 继承自Swing类的JComponent,为了方便其他组件的定位 有JPane

java图形用户界面认知

为了使我们生成的图形用户界面具有良好的平台无关性,Java语言中,提供了布局管理器这个工具来管理 组件在容器中的布局,而不使用直接设置组件位置.组件类是创建用户界面的,例如,JButton,JLabel和JTextField.容器类是用来包含其他组件的,例如,JFrame,JPanel和JApplet.辅助类是用来支持GUI组件的,例如,Graphics,Color,Font,FontMetrics和Dimension. 一.组件类 Component 类的实例可以显示在屏幕上.Componen

Java图形用户界面编程

GUI代表图形用户界面(Graphical User Interface),Java API中提供了两套组件用户支持编写图形用户界面,包括AWT和Swing. AWT使用本地操作系统的代码资源,被称为重量级组件. Swing建立在AWT提供的基础之上,同时使用AWT相同的事件处理机制.Swing组件是轻量级的GUI组件,完全有纯Java代码编写,不依赖于任何特定平台,采用MVC架构方式来设计组件类.它将表示层分为三个分离的部分,分别是模型(model).视图(view).控制器(controle

Java图形用户界面布局控制Layout练习

尝试搭建登录对话框,包含两个文字标签(用户名.服务器IP),两个文本输入条(用户名.服务器IP),一个按钮(登录),按照自己认为合适的方式布局.  我把GridLayout(网格布局).BorderLayout(边界布局).FlowLayout(流式布局)三种布局进行了比较并且做了尝试.  终于到了使用Java得到图形反馈的结果,心里还有些小激动呢.虽然只是完成了界面的展示,没有功能的实现,但是成就感还是蛮大的,而且查询JDK文档真的非常有收获. package gui; import java

JAVA图形用户界面

javaAPI中提供了两套组件用于编写图形界面,AWT和Swing Swing是轻量级的GUI组件,用MVC架构来设计组件类,这种架构分为模型,试图和控制器.其中试图使用户看到的,控制器处理用户与组件的交互操作,模型用来存储定义组件的数据. 视图由容器和组件构成.一个组件要可见,就必须放在容器中. 重量级容器包括Jframe(窗体),JDialog(对话框),JWindow(窗口),JApplet(小程序).每个应用程序中至少要有一个重量级容器(顶级容器). 这4个顶级容器继承自Containe

Java学习笔记--Java图形用户界面

AWT:抽象窗口组件工具包 Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包.AWT 的主要优点是,它在 Java 技术的每个版本上都成为了一种标准配置,包括早期的 Web 浏览器中的 Java 实现:另外它也非常稳定.这意味着我们不需要单独安装这个工具包,在任何一个 Java 运行环境中都可以使用它,这一点正是我们所希望的特性. AWT包中最基本的关系是 组件.容器.布局管理器.事件之间的关系 容器类派生出  容器框架类(Frame) 面板类(Pa

多线程编程、java图形用户界面编程、Java I / O系统

线程概述 进程:是一种 “自包容”的运行程序 线程是进程当中的一个概念,最小处理单位 THread类.Runnable接口.Object类 创建新执行线程有两种方法:1:一种方法是将类声明为Thread子类,该子类Thread类为run方法 启动:调start()方法 编写一个继承类的类,然后在类中重写Thread类的run()方法 编写一个实现Runnable接口,然后将该类的的实例与java.lang.Thread对象联系在一起 char能够转换int(4个字节),Int强制转换char(2

I/O系统,多线程、图形用户界面编程

多线程 进程与线程区别: 进程需要分配独立的内存空间:线程在同一内存空间中工作,可以共享同一块内存和系统资源 与Java相关的API: 1)Thread类 方法:start()启动: urn() : getName()获取线名:    setName()改变线名:   setPriority()设置优先级:   setDaemon()守护线程:   join()等待:   interupt()中段本线程:    isAlive()判断运行是否仍在生命周期之中:   yield()静态,停止线程运