如何用Java设计一个简单的窗口界面(初级二)
如何添加组件一、准备1.这里介绍的是eclipse2.常用组件的了解3.常用布局1.BorderLayout 布局2.FlowLayout 布局二、代码1.简单的2.构造中间容器,顺便设置容器和按钮为透明的进阶一、准备1.这里介绍的是eclipse2.常用组件的了解JTextField(文本框)允许用户在文本框中输入单行文本。JTextArea (文本区)允许用户在文本区中输入多行文本。JButt
如何添加组件
一、准备
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,高108
window.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,高108
JPanel 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);//释放当前窗口
}
}
更多推荐
所有评论(0)