GUI程式設計(五)Swing的簡單應用
阿新 • • 發佈:2021-11-23
3、Swing
3.1 、視窗、面板
package com.study.lesson04; import javax.swing.*; import java.awt.*; public class JFrameDemo { //init(): 初始化 public void init(){ //頂級視窗 JFrame jf = new JFrame("這是一個JFrame視窗"); jf.setVisible(true); jf.setBounds(100,100,200,200); jf.setBackground(Color.cyan); //設定文字 JLabel JLabel label = new JLabel("歡迎來到"); jf.add(label); //關閉事件 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { //建立一個視窗 new JFrameDemo().init(); } }
標籤居中
setHorizontalAlignment
package com.study.lesson04; import javax.swing.*; import java.awt.*; public class JframeDeno02 { public static void main(String[] args) { new MyJframe2().init(); } } class MyJframe2 extends JFrame{ public void init(){ this.setVisible(true); this.setBounds(10,10,200,300); JLabel label = new JLabel("歡迎來到"); this.add(label); //讓我們的文字標籤居中,設定水平對齊 label.setHorizontalAlignment(SwingConstants.CENTER); //獲得一個容器 Container container = this.getContentPane(); container.setBackground(Color.YELLOW); } }
3.2 、彈窗
JDialog,用來被彈出,預設就有斷臂事件!
package com.study.lesson04; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //主視窗 public class DialogDemo extends JFrame { public DialogDemo(){ this.setVisible(true); this.setSize(700,500); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //JFrame 放東西,容器 Container container = this.getContentPane(); //絕對佈局 container.setLayout(null); //按鈕 JButton button = new JButton("點選彈出一個對話方塊");//建立 button.setBounds(30,30,200,50); //點選這個按鈕的時候,彈出一個彈窗 button.addActionListener(new ActionListener() {//監聽器 @Override public void actionPerformed(ActionEvent e) { //彈窗 new MyDialogDemo(); } }); container.add(button); } public static void main(String[] args){ new DialogDemo(); } } //彈窗的視窗 class MyDialogDemo extends JDialog{ public MyDialogDemo() { this.setVisible(true); this.setBounds(100,100,500,500); //this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Container container = this.getContentPane(); container.setLayout(null); container.add(new Label("積極向上鎖子哥")); } }
3.3、標籤
label
new JLabel("xxx");
圖示ICON
圖片CON
package com.study.lesson04;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class ImageIconDemo extends JFrame {
public ImageIconDemo() {
//獲取圖片的地址
JLabel label = new JLabel("ImageIcon");
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);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setBounds(100,100,200,200);
}
public static void main(String[] args) {
new ImageIconDemo();
}
}
3.4、面板
JPanel
package com.study.lesson05;
import javax.swing.*;
import java.awt.*;
public class JPanelDemo extends JFrame {
public JPanelDemo(){
Container container = this.getContentPane();
container.setLayout(new GridLayout(2,1,10,10));//豆麵兩個引數的意思,間距
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);
this.setVisible(true);
this.setSize(500,500);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JPanelDemo();
}
}
JSrollPanel
package com.study.lesson05;
import javax.swing.*;
import java.awt.*;
public class JScrollDemo extends JFrame {
public JScrollDemo() {
Container container = this.getContentPane();
//文字域
JTextArea textArea = new JTextArea(20, 50);
textArea.setText("歡迎學習");
//Scroll面板
JScrollPane scrollPane = new JScrollPane(textArea);
container.add(scrollPane);
this.setVisible(true);
this.setBounds(100,100,300,150);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JScrollDemo();
}
}