题目:设计一个九宫格
源代码
package LayoutManager;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GridLayoutTest {
public static void main(String args[]) {
JFrame frame = new JFrame("GridLayout表格窗体");
GridLayout grd = new GridLayout(3,3);
for(int i=1;i<=9;i++) {
JButton but = new JButton(""+i);
frame.add(but);
}
frame.setLayout(grd);
frame.setLocation(700, 300);
frame.setSize(700,500);
frame.setVisible(true);
}
}
运行截图
总结
本周学习了Java的图形界面。
学习了一种容器JFrame,按钮JButton,五种布局管理器。
1、FlowLayout流式布局
流式布局经常在各种列表展示文本框的时候可以看到,特别是应用于标签类的。例如以下
2、BorderLayout边界布局
3、GridLayout表格布局
4、CardLayout卡片布局
以下插入了40张图片每隔一秒进行轮播,并加入了一段文字。
package LayoutManager;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class CardLayoutTest {
public static void main(String args[]) {
JFrame frame = new JFrame("CardLayout卡片窗体");
Container cont = frame.getContentPane();//取得窗体容器
CardLayout card = new CardLayout();//定义布局管理器
frame.setLayout(card);
for(int i=1;i<=40;i++) {
String path = "D:"+File.separator+"image"+File.separator+i+".jpg";
cont.add("L"+i,new JLabel(new ImageIcon(path)));
}
String msg1 = "CardLayout";
String msg2 = "1";
String msg3 = "你好";
String msg4 = "3";
String msg5 = "哈哈哈O(∩_∩)O~";
String msg = "<html><body>"+msg1+"<br>"+msg2+"<br>"+msg3+"<br>"+msg4+"<br>"+msg5+"<body></html>";
JLabel lab2 = new JLabel(msg,JLabel.CENTER);
Font fnt = new Font("华文琥珀",Font.BOLD,30);
lab2.setFont(fnt);
lab2.setBackground(Color.PINK);
lab2.setOpaque(true);
frame.add(lab2);
frame.setSize(900, 700);
frame.setLocation(100, 90);
frame.setVisible(true);
for(int i=1;i<=40;i++) {
try {
Thread.sleep(1000);
card.next(cont);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
5、绝对布局