package study;
import java.awt.Button;
import java.awt.FlowLayout;
import javax.swing.JFrame;
public class Exercise1 {
//之前没设定布局是后会呈东南西北东布局
//在一行显示叫做流布局,当如果一行放不下会放到下一行,不会撑开设定的大小
public static void main(String[] args) {
JFrame f = new JFrame("窗口的名字");
f.setBounds(1000, 100, 100, 100);
f.setLayout(new FlowLayout(FlowLayout.LEFT));//居左,也可以居中和居右等等
Button b1 = new Button("东");
Button b2 = new Button("南");
Button b3 = new Button("西");
Button b4 = new Button("北");
Button b5 = new Button("中");
f.add(b1);
f.add(b2);
f.add(b3);
f.add(b4);
f.add(b5);
/*
* f.pack();以实际组件控制窗口大小
*/
f.setVisible(true);
}
}
package study;
import java.awt.Button;
import java.awt.GridLayout;
import javax.swing.JFrame;
public class Exercise2 {
//网格布局
public static void main(String[] args) {
JFrame f = new JFrame("窗口的名字");
f.setLayout(new GridLayout(3, 2));//行数和列数
f.setBounds(1000, 100, 500, 500);
Button b1 = new Button("1");
Button b2 = new Button("2");
Button b3 = new Button("3");
Button b4 = new Button("4");
Button b5 = new Button("5");
f.add(b1);
f.add(b2);
f.add(b3);
f.add(b4);
f.add(b5);
/*
* f.pack();以实际组件控制窗口大小
*/
f.setVisible(true);
}
}
package study;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
//绝对布局
public class Exercise3 {
public static void main(String[] args) {
JFrame f = new JFrame("窗口的名称");
f.setBounds(1000, 100, 500, 500);
f.setLayout(null);//绝对布局,也就是没有布局
//设置一个标签
JLabel j1 = new JLabel("这是一个标签");
j1.setBounds(0, 400, 50, 10);//位置和可以显示的范围,如果是文本时,宽度不够会用省略号显示剩下的内容,高度不够字体会被切少一部分
f.add(j1);
//设置一张图片,其实是把图片放到标签中然后把标签加到窗口中
ImageIcon i = new ImageIcon("E:\\java的工作空间\\21.1图形化界面布局\\src\\study\\1.JPG");
JLabel j2 = new JLabel(i);
j2.setBounds(100, 100, 100, 100);//位置和可以显示的范围
f.add(j2);
//设置点击X时结束程序,没设置时,关闭窗口实际程序仍在运行
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
package study;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
//用一个继承了JFrame的类建立窗体,而不是写在主类中
//通过构造方法设置属性
public class Exercise4 extends JFrame{
public Exercise4() {
setBounds(1000, 100, 500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();//获取当前窗体得面板
//在面板里面设置东西
c.setBackground(Color.YELLOW);
JButton b1 = new JButton("1");
c.add(b1,"North");
JLabel j1 = new JLabel("标签",JLabel.CENTER);
add(j1, "Center");
//修改标签里面得字体
Font f1 = new Font("隶书",Font.BOLD+Font.ITALIC,40);//字体 字体是否加粗/是否倾斜 字体大小
j1.setFont(f1);
setVisible(true);
}
public static void main(String[] args) {
new Exercise4();
}
}
package study;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
//窗口只能添加一个组件,若想有多个组件可放到Jpanel中再将Jpanel组件放入窗口中
public class Exercise5 extends JFrame{
public Exercise5() {
setBounds(1000, 100, 500, 500);
//增加输入框
JLabel l1 = new JLabel("请输入用户名",JLabel.CENTER);
JLabel l2 = new JLabel("请输入密码",JLabel.CENTER);
Font f1 = new Font("隶书", Font.BOLD+Font.ITALIC, 20);
l1.setFont(f1);
l2.setFont(f1);
//增加一个输入框
JTextField t = new JTextField(20);//可输入显示的长度
JPasswordField pa = new JPasswordField(20);//可输入显示的长度
JButton b1 = new JButton("登陆");
JPanel p1=new JPanel();//建立一个面板,默认流布局
JPanel p2=new JPanel();
JPanel p3=new JPanel();
JPanel p4=new JPanel();
p1.add(l1);
p1.add(t);
p2.add(l2);
p2.add(pa);
p3.add(b1);
p4.add(p1);
p4.add(p2);
p4.add(p3);
setVisible(true);
}
public static void main(String[] args) {
new Exercise5();
}
}