我們知道AWT是在java.awt包下那麼同理Swing應該在 javax.swing包下
建立一個JFrame窗口
public class JFrameDemo {
public static void main(String[] args) {
//JFrameDemo.init(); //是init()方法靜態然後通過類名直接調用
//建立一個窗口
new JFrameDemo().init();
}
// 初始化 init()
public void init() {
JFrame jFrame = new JFrame("這是一個JFrame窗口");
//窗口的大小
jFrame.setBounds(100,100,400,400);
//窗口的大小不變
jFrame.setResizable(false);
//窗口的可見
jFrame.setVisible(true);
//標籤
JLabel jLabel = new JLabel("這是一個JLabel");
//把標籤添加到窗口中
jFrame.add(jLabel);
//標籤在窗口的中間
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
//獲得一個容器
Container container = jFrame.getContentPane();
container.setBackground(Color.green);
//關閉窗口
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
面板
public class JFrameDemo2 {
public static void main(String[] args) {
/**
* 面板
*/
JFrameDemo2.init();
}
public static void init() {
JFrame jFrame = new JFrame();
//窗口的大小
jFrame.setBounds(100,100,400,400);
//獲得一個容器
Container container = jFrame.getContentPane();
container.setBackground(Color.green);
//設置佈局
container.setLayout(null);
//窗口的可見
jFrame.setVisible(true);
JPanel jPanel = new JPanel();
//面板的大小
jPanel.setBounds(50,50,100,100);
//面板的背景
jPanel.setBackground(Color.red);
jFrame.add(jPanel);
//關閉窗口
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
彈窗
public class DialogDemo {
public static void main(String[] args) {
/**
* 彈窗
*/
new DialogDemo2().init();
}
}
class DialogDemo2 extends JFrame {
public void init() {
//窗口的大小
this.setBounds(100, 100, 400, 400);
//窗口的可見
setVisible(true);
//獲得一個容器
Container container = this.getContentPane();
container.setLayout(null);
//創建按鈕對象
JButton jButton = new JButton("點我");
//設置按鈕的大小
jButton.setBounds(50, 50, 100, 100);
container.add(jButton);
//按鈕被監聽
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new MyDialogDemo();
}
});
}
}
class MyDialogDemo extends JDialog {
public MyDialogDemo() {
//彈窗的大小
this.setBounds(400, 400, 500, 500);
//彈窗的可見
this.setVisible(true);
//混的一個容器
Container container = this.getContentPane();
//設置佈局
container.setLayout(null);
//添加標籤
container.add(new Label("你來了"));
}
}
標籤 (ICON 圖片) 圖片放在標籤上
public class IconDemo extends JFrame implements Icon {
private int width;
private int heigth;
//無參構造
public IconDemo() {}
//有參構造
public IconDemo(int width, int heigth) {
this.width=width;
this.heigth=heigth;
}
public void init() {
IconDemo iconDemo = new IconDemo(15, 15);
//圖標放在標籤,也可以放在按鈕上!
JLabel label = new JLabel("icontest", iconDemo, SwingConstants.CENTER);
//獲得容器
Container container = getContentPane();
//添加標籤
container.add(label);
//窗口可見
this.setVisible(true);
//關閉窗口
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
//實例化
new IconDemo().init();
}
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
g.fillOval(x,y,width,heigth);
}
@Override
public int getIconWidth() {
return width;
}
@Override
public int getIconHeight() {
return heigth;
}
}
獲得ICON圖片
public class ImageIconDemo extends JFrame {
public void init() {
JLabel label = new JLabel("ImageIconDemo");
//獲取圖片地址
URL url = ImageIconDemo.class.getResource("tx.jpg");
ImageIcon imageIcon = new ImageIcon(url);
label.setIcon(imageIcon);
//標籤佈局
label.setHorizontalAlignment(SwingConstants.CENTER);
//獲得容器
Container container = getContentPane();
//添加標籤
container.add(label);
//設置窗口的大小
setBounds(100,100,200,200);
//窗口的可見
setVisible(true);
//關閉窗口
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new ImageIconDemo().init();
}
}
JPanel 面板
public class JpanelDemo extends JFrame {
public JpanelDemo() {
//窗口的大小
this.setBounds(100,100,400,400);
//窗口的可見
this.setVisible(true);
//關閉窗口
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container container = this.getContentPane();
container.setBackground(Color.green);
container.setLayout(new GridLayout(2, 1, 10, 10)); //後面的參數的意思,間距
container.setLayout(null);
JPanel panel1 = new JPanel(new GridLayout(1, 3));
JPanel panel2 = new JPanel(new GridLayout(1, 2));
JPanel panel3 = new JPanel(new GridLayout(2, 1));
JPanel panel4 = new JPanel(new GridLayout(3, 2));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel2.add(new JButton("2"));
panel2.add(new JButton("2"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
panel4.add(new JButton("4"));
container.add(panel1);
container.add(panel2);
container.add(panel3);
container.add(panel4);
}
public static void main(String[] args) {
new JpanelDemo();
}
}
圖片按鈕
public class JButtonDemo01 extends JFrame {
public JButtonDemo01() {
Container container = this.getContentPane();
//將一個圖片變爲圖標
URL resource = JButtonDemo01.class.getResource("tx.jpg");
Icon icon = new ImageIcon(resource);
//把這個圖標放在按鈕上
JButton button = new JButton();
button.setIcon(icon);
button.setToolTipText("圖片按鈕");
//add
container.add(button);
//窗口的可見
this.setVisible(true);
//窗口的大小
this.setSize(500, 500);
//關閉窗口
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
/**
* 按鈕
*/
new JButtonDemo01();
}
}
列表
下拉框
public class TestComboboxDemo01 extends JFrame {
public TestComboboxDemo01() {
//獲得一個容器
Container container = this.getContentPane();
JComboBox status = new JComboBox();
status.addItem(null);
status.addItem("正在熱映");
status.addItem("已下架");
status.addItem("即將上映");
container.add(status);
//窗口的可見
this.setVisible(true);
//窗口的大小
this.setSize(500, 500);
//關閉窗口
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestComboboxDemo01();
}
}
列表框
public class TestComboboxDemo02 extends JFrame {
/**
* 列表框
*/
public TestComboboxDemo02() {
Container container = this.getContentPane();
Vector vector = new Vector();
JList jList = new JList(vector);
vector.add("張三");
vector.add("李四");
vector.add("王五");
container.add(jList);
//窗口的可見
this.setVisible(true);
//窗口的大小
this.setSize(500, 500);
//關閉窗口
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestComboboxDemo02();
}
}
文本框
public class TestTextDemo01 extends JFrame {
public TestTextDemo01() {
//獲得一個容器
Container container = this.getContentPane();
JTextField textField = new JTextField("背景");
JTextField textField1 = new JTextField("你好", 10);
container.add(textField,BorderLayout.NORTH);
container.add(textField1,BorderLayout.SOUTH);
//窗口的可見
this.setVisible(true);
//窗口的大小
this.setSize(500, 500);
//關閉窗口
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestTextDemo01();
}
}
密碼框
public class TestTextDemo02 extends JFrame {
/**
* 密碼框
*/
public TestTextDemo02() {
Container container = this.getContentPane();
JPasswordField passwordField = new JPasswordField();
passwordField.setEchoChar('*');
container.add(passwordField);
//窗口的可見
this.setVisible(true);
//窗口的大小
this.setSize(500, 500);
//關閉窗口
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestTextDemo02();
}
}