第一节、AWT与Swing
设计图形用户界面时的步骤:选取组件、设计布局、响应事件
Swing组件与AWT最大不同是Swing组件在实现时不包括任何本地代码
AWT属于重量级组件,Swing组件比AWT拥有更多的功能
第二节、容器
1、顶层容器
Swing中提供了四种顶层容器:JFrame、JApplet、JDialog、JWindow
JFrame Code实例
package JavaProcessDesigner;
import javax.swing.*;
import java.awt.*;
public class JFrameDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("JFrameDemo");
JButton button = new JButton("press me");
frame.getContentPane().add(button, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
2、内容窗格
四个顶层容器中每一个都有一个内容窗格,顶层容器的组件都放在内容窗格中,有两种方式将组件放入内容窗格
(1)通过顶层容器的get-ContentPane()方法
(2)创建一个新的内容窗格,取代顶层容器默认的内容窗格
内容窗格 code实例
package JavaProcessDesigner.TuxXingJieMianSheJi;
import javax.swing.*;
import java.awt.*;
public class JFrameDemo2 {
public static void main(String[] args) {
JFrame frame = new JFrame("JFrameDemo2");
JButton button = new JButton("press me");
JPanel contentPanel = new JPanel();
contentPanel.setLayout(new BorderLayout());
contentPanel.add(button,BorderLayout.CENTER);
frame.setContentPane(contentPanel);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
3、面板
面板分为普通面板和滚动面板,面板并不能独自存在
面板 code实例
package JavaProcessDesigner.TuxXingJieMianSheJi;
import javax.swing.*;
import java.awt.*;
public class FrameWithPanel {
public static void main(String[] args) {
JFrame frame = new JFrame("Frame with Panel");//创建一个顶层容器
Container contentPane = frame.getContentPane();//创建一个内容窗格
contentPane.setBackground(Color.cyan);//设置内容窗格为蓝绿色
JPanel panel = new JPanel();//创建一个面板
panel.setBackground(Color.yellow);//设置面板颜色
JButton button = new JButton("press me");//创建一个按钮
panel.add(button);//将按钮添加到面板上
contentPane.add(panel,BorderLayout.SOUTH);//将面板添加到内容窗格里
frame.setSize(300,200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}