1.窗口、面板
package myjfraem;
import javax.swing.*;
public class JFrameDemo {
//init();初始化
public void init(){
//顶级窗口
JFrame frame=new JFrame("这是一个jframe窗口");
frame.setVisible(true);
frame.setBounds(100,100,300,300);
//设置文字
JLabel jLabel=new JLabel("欢迎来到我的第一个jframe窗口",SwingConstants.CENTER);
frame.add(jLabel);
//容器实例化
//关闭事件
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
//启动
new JFrameDemo().init();
}
}
设置标签(JLabel)居中
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class JFrameDemo02 {
public static void main(String[] args) {
new MyJfame02().init();
}
}
class MyJfame02 extends JFrame{
public void init(){
this.setBounds(100,100,300,300);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//SwingConstants.CENTER 文本居中显示。
JLabel jLabel=new JLabel("欢迎来到我的第一个jframe窗口",SwingConstants.CENTER);
//文本居中
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
this.add(jLabel);
//获得一个容器
Container contentPane = this.getContentPane();
contentPane.setBackground(Color.CYAN);
}
}
2.弹窗
jDialog,用来被弹出,默认就有关闭
package myjfraem;
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,600);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//JFrame 放东西,容器
Container contentPane = this.getContentPane();
//绝对布局
contentPane.setLayout(null);
//按钮
JButton jButton = new JButton("点击弹出一个对话框");//创建
jButton.setBounds(30,30,200,50);
//点击按钮时弹出弹窗
jButton.addActionListener(new ActionListener() {//监听器
@Override
public void actionPerformed(ActionEvent e) {
//弹窗
new MyDialogDemo();
}
});
contentPane.add(jButton);
}
public static void main(String[] args) {
new DialogDemo();
}
}
//弹窗的窗口
class MyDialogDemo extends JDialog{
public MyDialogDemo() {
this.setVisible(true);
this.setBounds(100,100,500,500);
//JDialog关闭只能用DO_ONTHING,HIDE,DISPOSE三个中的一个
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
Container contentPane = this.getContentPane();
contentPane.setLayout(null);
JLabel jLabel = new JLabel("JAVA JFrame学习", SwingConstants.CENTER);
jLabel.setBounds(30,30,500,50);
contentPane.add(jLabel);
}
}
3.标签
Label
new JLabel("")
图标Icon(用Java自带方法绘制一个)
package myjfraem;
import javax.swing.*;
import java.awt.*;
//图标,需要实现类,JFrame继承
public class IconDemo extends JFrame implements Icon {
private int width;
private int hight;
public IconDemo(){ }//无参构造
public IconDemo(int width,int hight){
this.width=width;
this.hight=hight;
}
public void init(){
IconDemo iconDemo = new IconDemo(15, 15);
//图标放在标签,也可以放在按钮上
JLabel jLabel = new JLabel("ICONtest",iconDemo,SwingConstants.CENTER);
Container contentPane = getContentPane();
contentPane.add(jLabel);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_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,hight);
}
@Override
public int getIconWidth() {
return this.width;
}
@Override
public int getIconHeight() {
return this.hight;
}
}
图片Icon
package myjfraem;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class ImageIconDemo extends JFrame {
public ImageIconDemo(){
//获取图片的地址
JLabel label=new JLabel("ImageIcon");
//图片直接放在包下可以直接引用相对地址,也可以直接写绝对地址
URL resource = ImageIconDemo.class.getResource("tx.jpg");
ImageIcon imageIcon = new ImageIcon(resource);
label.setIcon(imageIcon);
label.setHorizontalAlignment(SwingConstants.CENTER);
Container contentPane = getContentPane();
contentPane.add(label);
setVisible(true);
setBounds(100,100,500,500);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new ImageIconDemo();
}
}
4.面板
JPanel
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class JPannelDemo extends JFrame {
public JPannelDemo() {
Container container = this.getContentPane();
container.setLayout(new GridLayout(2,1,10,10));//后面参数是指间距
JPanel jPanel1 = new JPanel(new GridLayout(1,3));
JPanel jPanel2 = new JPanel(new GridLayout(1,2));
JPanel jPanel3 = new JPanel(new GridLayout(2,1));
JPanel jPanel4 = new JPanel(new GridLayout(3,2));
container.add(jPanel1);
container.add(jPanel2);
container.add(jPanel3);
container.add(jPanel4);
jPanel1.add(new JButton("1"));
jPanel1.add(new JButton("1"));
jPanel1.add(new JButton("1"));
jPanel2.add(new JButton("2"));
jPanel2.add(new JButton("2"));
jPanel3.add(new JButton("3"));
jPanel3.add(new JButton("3"));
jPanel4.add(new JButton("4"));
jPanel4.add(new JButton("4"));
jPanel4.add(new JButton("4"));
jPanel4.add(new JButton("4"));
jPanel4.add(new JButton("4"));
jPanel4.add(new JButton("4"));
this.setVisible(true);
this.setSize(500,500);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new JPannelDemo();
}
}
JScroll(带滚动条)
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class JScrollDemo extends JFrame {
public JScrollDemo() {
Container contentPane = this.getContentPane();
//文本域
JTextArea jTextArea = new JTextArea(20, 50);
jTextArea.setText("这是一个文本域");
//Scroll面板
JScrollPane jScrollPane = new JScrollPane(jTextArea);
contentPane.add(jScrollPane);
contentPane.add(jTextArea);
this.setVisible(true);
this.setBounds(100,100,400,450);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new JScrollDemo();
}
}
5.按钮
图片按钮
package myjfraem;
import javax.swing.*;
import java.awt.*;
import java.net.URL;
public class JButtonDemo extends JFrame {
public JButtonDemo() {
Container contentPane = this.getContentPane();
//将一个图片变为一个图标
URL resource = JButtonDemo.class.getResource("tx.jpg");
Icon icon = new ImageIcon(resource);
//把这个图标放在按钮上
JButton button = new JButton();
button.setIcon(icon);
button.setToolTipText("image按钮");
contentPane.add(button);
setVisible(true);
setBounds(100,100,100,100);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new JButtonDemo();
}
}
单选按钮
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class JButtonDemo02 extends JFrame {
public JButtonDemo02() {
Container contentPane = getContentPane();
//单选框
JRadioButton jrb1 = new JRadioButton("jrb1");
JRadioButton jrb2 = new JRadioButton("jrb2");
JRadioButton jrb3 = new JRadioButton("jrb3");
//由于单选框只能选择一个,分组,一个组中只可以选择一个
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(jrb1);
buttonGroup.add(jrb2);
buttonGroup.add(jrb3);
contentPane.add(jrb1,BorderLayout.CENTER);
contentPane.add(jrb2,BorderLayout.NORTH);
contentPane.add(jrb3,BorderLayout.SOUTH);
setVisible(true);
setBounds(100,100,300,300);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new JButtonDemo02();
}
}
复选按钮
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class JButtonDemo03 extends JFrame {
public JButtonDemo03() {
Container contentPane = getContentPane();
//多选框
Checkbox checkbox01 = new Checkbox("checkbox01");
Checkbox checkbox02 = new Checkbox("checkbox02");
contentPane.add(checkbox01,BorderLayout.NORTH);
contentPane.add(checkbox02,BorderLayout.SOUTH);
setVisible(true);
setBounds(100,100,300,300);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new JButtonDemo03();
}
}
6.列表
下拉框
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class TestCombobosxDemo extends JFrame {
public TestCombobosxDemo() {
Container contentPane = this.getContentPane();
JComboBox status = new JComboBox();
status.addItem(null);
status.addItem("第一");
status.addItem("第二");
status.addItem("第三");
contentPane.add(status);
this.setVisible(true);
this.setBounds(100,100,20,100);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new TestCombobosxDemo();
}
}
列表框
package myjfraem;
import javax.swing.*;
import java.awt.*;
import java.util.Vector;
public class TestCombobosxDemo02 extends JFrame {
public TestCombobosxDemo02() {
Container contentPane = this.getContentPane();
//生成列表内容
//String[] cont={"1","2","3"};
Vector cont = new Vector();
cont.add("123");
cont.add("1234");
cont.add("12345");
//列表中需要放入的内容
JList list = new JList(cont);
contentPane.add(list);
this.setVisible(true);
this.setBounds(100,100,20,100);
this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new TestCombobosxDemo02();
}
}
应用场景
选择地区或者一些单个选项,
列表,展示信息,一般是动态展示。
7.文本框
文本框
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class TestTestDemo extends JFrame {
public TestTestDemo() {
Container contentPane = getContentPane();
contentPane.setLayout(null);//锁定布局
JTextField jTextField1 = new JTextField("hello");
JTextField jTextField2 = new JTextField("world",20);
contentPane.add(jTextField1,BorderLayout.NORTH);
contentPane.add(jTextField2,BorderLayout.SOUTH);
setVisible(true);
setBounds(100,100,100,100);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new TestTestDemo();
}
}
密码框
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class TestTestDemo02 extends JFrame {
public TestTestDemo02() {
Container contentPane = getContentPane();
//文本域尽量使用面板
JPasswordField jPasswordField = new JPasswordField();
jPasswordField.setEchoChar('*');
contentPane.add(jPasswordField);
setVisible(true);
setBounds(100,100,100,100);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new TestTestDemo02();
}
}
文本域
package myjfraem;
import javax.swing.*;
import java.awt.*;
public class TestTestDemo03 extends JFrame {
public TestTestDemo03(){
Container contentPane = getContentPane();
JTextArea jTextArea = new JTextArea();
jTextArea.setText("12345679");
JScrollPane jScrollPane = new JScrollPane(jTextArea);
contentPane.add(jScrollPane);
setVisible(true);
setBounds(100,101,100,100);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String[] args) {
new TestTestDemo03();
}
}