如何用Java设计一个简单的窗口界面(初级二)
如何添加组件
- 一、准备
- 1.这里介绍的是eclipse
- 2.常用组件的了解
- 3.常用布局
- 1.BorderLayout 布局
- 2.FlowLayout 布局
- 二、代码
- 1.简单的
- 2.构造中间容器,顺便设置容器和按钮为透明的进阶
一、准备
1.这里介绍的是eclipse
2.常用组件的了解
- JTextField(文本框)
允许用户在文本框中输入单行文本。 - JTextArea (文本区)
允许用户在文本区中输入多行文本。 - JButton (按钮)
允许用户单击按钮。 - JLabel (标签)
标签为用户提供提示信息。 - JCheckBox (复选框)
为用户提供多项选择。复选框的右面有个名字,并提供两种状态,一种是选中,另一种是未选中,用户通过单击该组件切换状态。 - JRadioButton (单选按钮)
为用户提供单项选择。 - JComboBox (下拉列表)
为用户提供单项选择。用户可以在下拉列表中看到第一个选项 和它旁边的箭头按钮,当用户单击箭头按钮时,选项列表打开。 - JPasswordField ( 密码框)
允许用户在密码框中输入单行密码,密码框的默认回显字符是’*’。密码框可以使用SetEchoChar(char c)重新设置回显字符,当用户输入密码时,密码框只显示回显字符。密码框调用char[] getPassword0方法可以返回用户在密码框中输入的密码。
3.常用布局
1.BorderLayout 布局
把容器空间简单的分为东、南、西、北、中五个区域,中间区域最大。每加入一个组件都要指明加在哪个区域,区域由静态常量CENTER,NORTH,SOUTH,WEST,EAST表示。每个区域只能放置一个组件,否则会被后者替换掉。如果容器的大小发生变化,其变化规律为:组件的相对位置不变,大小发生变化。最多添加5个组件,如果容器需要超过5个的组件,就必须使用嵌套或改用其他的布局。不一定所有的区域都有组件,如果四周区域(West、East、North、South区域)没有组件,则由Center区域去补充,但是如果 Center区域没有组件,则保持空白。
con.add(button,BorderLayout.NORTH);//把一个组件button添加到容器con的北区域
2.FlowLayout 布局
该构造方法可以创建一一个居中对齐的布局对象。使用FIowl ayout布局的容器使用add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列,每一行中的组件都居中排列,组件之间的默认水平和垂直间隙是5个像素。组件的大小为默认的最佳大小,例如,按钮的大小刚好能保证显示其上面的名字。对于添加到使用FlowLayout布局的容器中的组件,组件调用setSize(int x,int y )设置的大小无效,如果需要改变最佳大小,组件需调用public void setPreferredSize(DimensionpreferredSize)设置大小,例如:
button.setPreferredSize(new Dimension(66,88))
举个栗子
/*
下面五行可以简写为
import java.awt.*;
import javax.swing.*;
*/
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;import javax.swing.JButton;
import javax.swing.JFrame;public class Test extends JFrame{JButton button1 = new JButton("投喂乐事");//创建一个叫“投喂乐事”的按钮组件JButton button2 = new JButton("投喂奶茶");JButton button3 = new JButton("投喂雪顶");public Test() { setBounds(123,345,333,222);//设置窗口在屏幕上的位置和大小。距离屏幕左侧60个像素,上方100个像素,窗口宽188,高108 setLayout(new FlowLayout(FlowLayout.LEFT));//设置FlowLayout 布局(左对齐) getContentPane().add(button1);//把按钮添加到窗口中,或者add(button1);getContentPane().add(button2);getContentPane().add(button3);} public static void main (String[] args) { Test window = new Test();window.setTitle("堵小配的窝");//创建一个叫“堵小配的窝”的窗口 Container con = window.getContentPane();con.setBackground(Color.yellow);//设置窗口的背景色window.setBounds(123,345,333,222);//设置窗口在屏幕上的位置和大小。距离屏幕左侧60个像素,上方100个像素,窗口宽188,高108window.setVisible(true);//窗口设置为可见window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//释放当前窗口 }
}
当我们改变容器大小时,组件的位置也会发生相对变化
二、代码
1.简单的
import java.awt.*;
import javax.swing.*;public class Test{public static void main (String[] args) {JFrame window = new JFrame("堵小配的窝");//创建一个叫“堵小配的窝”的窗口JButton button1 = new JButton("投喂乐事");//创建一个叫“投喂乐事”的按钮组件JButton button2 = new JButton("投喂奶茶");JButton button3 = new JButton("投喂雪顶");Container con = window.getContentPane();con.setBackground(Color.yellow);//设置窗口的背景色window.setBounds(123,345,333,222);//设置窗口在屏幕上的位置和大小。距离屏幕左侧60个像素,上方100个像素,窗口宽188,高108 window.add(button1,BorderLayout.NORTH);//把杯子放在桌子上window.add(button2,BorderLayout.CENTER);//把杯子放在桌子上window.add(button3,BorderLayout.SOUTH);//把杯子放在桌子上 window.setVisible(true);//窗口设置为可见window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//释放当前窗口 }
}
借用一位老师的比喻,通常情况下水不会直接放在桌子上,先装在一个杯子里,再把杯子放在桌子上。接下来我们造一个中间容器杯子。
2.构造中间容器,顺便设置容器和按钮为透明的进阶
import java.awt.*;
import javax.swing.*;public class Test{public static void main (String[] args) {JFrame window = new JFrame("堵小配的窝");//创建一个叫“堵小配的窝”的窗口JButton button1 = new JButton("投喂乐事");//创建一个叫“投喂乐事”的按钮组件JButton button2 = new JButton("投喂奶茶");JButton button3 = new JButton("投喂雪顶");Container con = window.getContentPane();con.setBackground(Color.yellow);//设置窗口的背景色window.setBounds(123,345,333,222);//设置窗口在屏幕上的位置和大小。距离屏幕左侧60个像素,上方100个像素,窗口宽188,高108JPanel beizi = new JPanel();//造一个杯子出来beizi.add(button1);//把水(按钮)挪到杯子里来beizi.add(button2);//把水(按钮)挪到杯子里来beizi.add(button3);//把水(按钮)挪到杯子里来window.add(beizi);//把杯子放在桌子上//1.设置杯子透明beizi.setOpaque(false); //2.设置按钮透明button1.setContentAreaFilled(false);button2.setContentAreaFilled(false);button3.setContentAreaFilled(false); //3.取消按钮边框button1.setBorder(null);button2.setBorder(null);button3.setBorder(null);window.setVisible(true);//窗口设置为可见window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//释放当前窗口 }
}
如何用Java设计一个简单的窗口界面(初级二)相关推荐
- 如何用Java设计一个简单的窗口界面(学习中.1)
如何用Java设计一个简单的窗口界面 一.前言 二.简单了解 1.Swing简介 2.框架(frame) 3.层次 三.步骤 1.打开eclipse,依次创建项目,包,类. 2.代码 2.1最简单的可 ...
- 如何用java编写一个简单的多人PK游戏
如何用java编写一个简单的多人PK游戏 类与对象---PK游戏的编写 素材取用----王者荣耀和BILIBILI 创建两个对战的角色(PK游戏最少需要两名角色) 创建孙尚香和Van 设置孙尚香和Va ...
- java完成一个学生信息调查程序_利用Java设计一个简单的学生信息管理程序
利用Java设计一个简单的控制台学生信息管理程序 此程序可作为课设的参考,其中信息存储于文件中. 创建了学生类Student,用于存储学号等的信息.创建StudentFunction类,用于实现诸如学 ...
- 面试题之如何用Java设计一个自动售货机
如何用Java设计一个自动售货机程序是一个非常好的Java面试题.大多数情况会在面试比较senior的Java开发者的时候出现.在一个典型的代码面试中,你需要在一定的时间内根据对应的条件完成相关的代码 ...
- Java——创建一个简单的窗口
今天刚刚上完Java饶有兴趣的我 做了这么一个简单的窗口.挺有成就感的. package RTFIL; import javax.swing.*; import java.awt.*; import ...
- 为什么用redis做缓存而不是mybatis自带的缓存_如何用Java设计一个本地缓存,涨姿势了...
最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存:一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能. 当然如果拿来和专门的缓存 ...
- 如何用JAVA写一个简单的电脑客户端应用
前言: 我们学习了JAVA的application和applet,其中applet是需要打开编译软件或命令行才能弹出的那种窗口,和我们平时可以下载的软件不太一样.如何开发一个.exe文件? 其实和写正 ...
- 如何用Java编写一个简单的服务器和客户机
今天我要向大家介绍的是自己编写的一个比较简单的服务器和客户机程序,注意一下哦,比较简单.好了,闲话休提,砸门直入主题. 小编先从客户机和服务器的模型开始讲解.简单来说,我们实现的这种模型呢,我们每一个 ...
- 怎么做加减计算机程序vb,如何用VB设计一个简单计算器能进行加减乘除运算?...
参考下: 计算器的程序,很简单,只弄了+-法,乘除没弄,只要把代码看懂照着+-法改一下就行了,不过涉及到多级运算只用一个LastClick是不行的 程序的控件就两种 CommandBotton和Tex ...
最新文章
- MFC中利用CFileDialog选择文件并读取文件所遇到的问题和解决方法
- 人工神经网络能否驾驭生物神经元的“浓稠”程度?5到8层可能并非极限
- proc文件系统编程
- Smarty中的内建函数(一)config_load、foreach
- 编程之美-寻找最近点方法整理
- Linux下C语言实现LCD屏幕截图
- python get post请求_使用python封装get+post请求
- android token机制_你真的了解16.6ms刷新机制吗?
- hive udaf_Hive自定义函数
- eclipse中java环境配置
- android cpp 调用 shell命令
- 运动目标跟踪(九)--Struck跟踪原理
- linux 下安装 vim
- jquery on()方法off()方法
- 华为数通 软开 2022校招 面试全过 已开奖
- CAD图纸格式转换怎么操作?如何转换常见图纸格式?
- 人工智能学习资料之2021图灵大会笔记
- 如何在mac版chrome安装第三方插件
- 关于RFID电感耦合方式的射频前端工作原理,你了解吗?
- 提供良好客户服务的5大原则
热门文章
- 计算机单片机实训报告,计算器单片机实训报告.doc
- 在红帽linux创建目录,redhat linux建文件系统
- UE4 Matinee制作相机动画及其蓝图播放(UE4.11和UE4.19测试通过)
- Halcon12 HObject与VC++ OpenCV Mat相互转换
- python打印七段数码管引脚图_前辈学51单片机的感悟是怎么样的?说说看
- 计算机网络中的五层协议的体系结构
- 汇编语言 | CALL 和RET指令
- 表格td的宽度不随内容自适应
- 使用SQL Server管理数据表
- html3d旋转效果相册,HTML5css3:3D旋转木马效果相册