Java 界面 学习笔记

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
在这里插入图片描述
输入框返回值是输入的内容
在这里插入图片描述
在这里插入图片描述
提示框没有返回值.

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值