JFrame 窗体
创建一个空白窗体
package my;
import javax.swing.*;
public class GuiTest {
public static void main(String[] args) {
//主窗体
JFrame f = new JFrame("GuiTest");
//设置尺寸
f.setSize(900,500);
//设置坐标
f.setLocation(0,0);
//设置布局方式
f.setLayout(null);
/*
* 布局方式有:
* null 不使用布局,组件的大小和未知需要单独指定
* FlowLayout() 水平布局,组件水平摆放,不需要指定大小和位置
* BorderLayout() 边框布局,放置时需要指定东,西,南,北,中 五个位置
* GridLayout(行,列) 网格布局,放置时自动整齐排列
*/
//当点击关闭时:直接关闭程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*
* 点击窗口右上角关闭,窗口的四种关闭方式:参考:https://blog.csdn.net/xiangyong58/article/details/8252016
* JFrame.DO_NOTHING_NO_CLOSE 不执行任何操作
* JFrame.HIDE_NO_CLOSE 隐藏界面 setVisible(false)
* JFrame.DISPOSE_NO_CLOSE 隐藏并释放窗体 dispose()
* JFrame.EXIT_NO_CLOSE 直接关闭应用程序 System.exit(0)
*/
//显示窗体
f.setVisible(true);
}
}
效果如下:
JLabel 标签
package my;
import javax.swing.*;
public class GuiTest {
public static void main(String[] args) {
//主窗体
JFrame f = new JFrame("GuiTest");
//设置尺寸
f.setSize(700,700);
//设置坐标
f.setLocation(0,0);
//设置布局方式
f.setLayout(null);
//创建一个JLabel对象 - 文本显示
JLabel label1 = new JLabel("文本标签");
//设置 尺寸和坐标,参数分别是 x , y ,width , height
label1.setBounds(0,0,50,20);
//将label1 添加到 f主主窗体
f.add(label1);
// JLabel -图片显示
JLabel label_img = new JLabel();
ImageIcon img = new ImageIcon("E:/image/pitch2.jpg");
label_img.setIcon(img);
label_img.setBounds(10,0,600,600);
f.add(label_img);
//当点击关闭时:直接关闭程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
f.setVisible(true);
}
}
效果如下:
JButton 按钮
package my;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GuiTest {
public static void main(String[] args) {
//主窗体
JFrame f = new JFrame("GuiTest");
//设置尺寸
f.setSize(300,200);
//设置坐标
f.setLocation(0,0);
//设置布局方式
f.setLayout(null);
JLabel lab1 = new JLabel("你点按钮啊!");
lab1.setBounds(100,0,150,30);
f.add(lab1);
JButton btn1 = new JButton("按钮");
btn1.setBounds(100,50,150,30);
f.add(btn1);
//给按钮添加事件
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//修改lab1文本内容
lab1.setText("你已经点击了按钮!");
//修改btn1文本内容
btn1.setText("你点我干嘛?");
}
});
//当点击关闭时:直接关闭程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
f.setVisible(true);
}
}
JCheckBox 复选框
package my;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GuiTest {
public static void main(String[] args) {
//主窗体
JFrame f = new JFrame("GuiTest");
//设置尺寸
f.setSize(330,360);
//设置坐标
f.setLocation(0,0);
//设置布局方式
f.setLayout(null);
JLabel question = new JLabel("这里用到的控件有哪些?");
JCheckBox jcb1 = new JCheckBox("Jlabel");
JCheckBox jcb2 = new JCheckBox("JCheckBox");
JCheckBox jcb3 = new JCheckBox("JButton");
question.setBounds(100,10,200,30);
jcb1.setBounds(100,40,200,30);
jcb2.setBounds(100,70,200,30);
jcb3.setBounds(100,100,200,30);
f.add(question);
f.add(jcb1);
f.add(jcb2);
f.add(jcb3);
JButton btn1 = new JButton("提交答案");
btn1.setBounds(100,150,100,30);
f.add(btn1);
JLabel lab1 = new JLabel("结果:");
lab1.setBounds(100,190,200,30);
f.add(lab1);
//给按钮添加事件
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean jcb1isS = jcb1.isSelected();
boolean jcb2isS = jcb2.isSelected();
boolean jcb3isS = jcb3.isSelected();
if(jcb1isS && jcb2isS && jcb3isS)
{
lab1.setText("回答正确");
}else {
lab1.setText("你回去好好看看!");
}
}
});
//当点击关闭时:直接关闭程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
f.setVisible(true);
}
}
JRadioButton , ButtonGroup 单选框 和 按钮组
package my;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GuiTest {
public static void main(String[] args) {
//主窗体
JFrame f = new JFrame("GuiTest");
//设置尺寸
f.setSize(330,360);
//设置坐标
f.setLocation(0,0);
//设置布局方式
f.setLayout(null);
JLabel question = new JLabel("这是什么编程语言?");
JRadioButton jrb1 = new JRadioButton("Java");
JRadioButton jrb2 = new JRadioButton("C++");
JRadioButton jrb3 = new JRadioButton("PHP");
//JRadioButton 需要创建一个按钮组,添加到同一个按钮组的JRadioButton 至多能被选中一个
ButtonGroup group1 = new ButtonGroup();
group1.add(jrb1);
group1.add(jrb2);
group1.add(jrb3);
question.setBounds(100,10,200,30);
jrb1.setBounds(100,40,200,30);
jrb2.setBounds(100,70,200,30);
jrb3.setBounds(100,100,200,30);
f.add(question);
f.add(jrb1);
f.add(jrb2);
f.add(jrb3);
JButton btn1 = new JButton("提交答案");
btn1.setBounds(100,150,100,30);
f.add(btn1);
JLabel lab1 = new JLabel("结果:");
lab1.setBounds(100,190,200,30);
f.add(lab1);
//给按钮添加事件
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean jrb1isS = jrb1.isSelected();
boolean jrb2isS = jrb2.isSelected();
boolean jrb3isS = jrb3.isSelected();
if(jrb1isS)
{
lab1.setText("回答正确");
}else if(jrb2isS)
{
lab1.setText("不对哦");
}else if(jrb3isS)
{
lab1.setText("???");
}
}
});
//当点击关闭时:直接关闭程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
f.setVisible(true);
}
}
这里效果和上面JCheckBox 差不多,区别是 如果使用JRadioButton并且添加进同一个ButtonGroup的话 三个选项中最多只能选中一个
JComboBox 下拉框
package my;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GuiTest {
public static void main(String[] args) {
//主窗体
JFrame f = new JFrame("GuiTest");
//设置尺寸
f.setSize(360,360);
//设置坐标
f.setLocation(0,0);
//设置布局方式
f.setLayout(null);
JLabel question = new JLabel("这是什么编程语言?");
question.setBounds(100,10,200,30);
f.add(question);
String[] lList= {"C++","Java","Python","C#","汇编"};
JComboBox jcbb = new JComboBox();
jcbb.setBounds(100,50,200,30);
for(String i : lList)
{
jcbb.addItem(i);
}
f.add(jcbb);
JButton btn1 = new JButton("提交答案");
btn1.setBounds(100,150,100,30);
f.add(btn1);
JLabel lab1 = new JLabel("结果:");
lab1.setBounds(100,190,200,30);
f.add(lab1);
//给按钮添加事件
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//获取选中项,把结果转为String
String resu = jcbb.getSelectedItem().toString();
lab1.setText("你选中了"+resu);
}
});
//当点击关闭时:直接关闭程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
f.setVisible(true);
}
}
JOptionPane 对话框
package my;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GuiTest {
public static void main(String[] args) {
//主窗体
JFrame f = new JFrame("GuiTest");
//设置尺寸
f.setSize(560,360);
//设置坐标
f.setLocation(0,0);
//设置布局方式
f.setLayout(null);
JButton btn1 = new JButton("弹出询问对话框");
btn1.setBounds(50,150,140,40);
f.add(btn1);
JButton btn2 = new JButton("弹出输入对话框");
btn2.setBounds(200,150,140,40);
f.add(btn2);
JButton btn3 = new JButton("弹出提示对话框");
btn3.setBounds(350,150,140,40);
f.add(btn3);
//给按钮添加事件
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//JOptionPane 对话框
int option = JOptionPane.showConfirmDialog(f,"你确定吗?");
JOptionPane.showMessageDialog(f,"Ans:"+option);
}
});
//给按钮添加事件
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//JOptionPane 对话框
String ans= JOptionPane.showInputDialog(f,"请输入");
JOptionPane.showMessageDialog(f,"Ans:"+ans);
}
});
//给按钮添加事件
btn3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//JOptionPane 对话框
JOptionPane.showMessageDialog(f,"提示内容!");
}
});
//当点击关闭时:直接关闭程序
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
f.setVisible(true);
}
}
这里选Yes,No,Cancel 对应的返回值分别是: 0 , 1 ,2
输入框返回值是输入的内容
提示框没有返回值.