Swing 中基本组件(java)

Swing 中的组件列表

标签

Label用于显示文字

JLabel l = new JLabel("文字");
//文字颜色
l.setFourground(Color.red);
l.setBounds(50,50,280,30);

也可以通过JLabel显示图片
java GUI 显示图片是通过在label上设置图标实现的

JLabel l = new JLabel();
//根据图片创建ImageIcon对象
ImgaeIcon i = new ImageIcon(src);

//设置ImageIcon
l.setIcon(i);

//label的大小设置为ImageIcon,否则显示不完整
l.setBounds(50,50,i.getIconWidth(),i.getIconHeight());
普通按钮

JButton 普通按钮

JButton b = new JButton("普通按钮");
b.setBounds(50,50,100,30);
复选框

JCheckBox 复选框
使用isSelected获取是否选中了

JCheckBox c1 = new JCheckBox("选择1");
//设置为默认被选中
c1.setSelected(true);
c1.setBounds(50,50,100,30);

JCheckBox c2 = new JCheckBox("选择2");
c2.setBounds(50,50,100,30);
//判断是否被选中
System.out.println(c2.isSelected());
单选框

JRadioButton 单选框
使用isSelected获取是否选中了
多个单选框为了实现只能选中一个,还需要用到ButtonGroup

JRadioButton r1 = new JRadioButton("单选1");
//设置为默认选中
r1.setSelected(true);
r1.setBounds(50,50,100,30);

JRadioButton r2 = new JRadioButton("单选2");
r2.setBounds(50,50,100,30);
//判断是否被选中
System.out.println(b2.isSelected());
按钮组

ButtonGroup 对按钮进行分组
不同的按钮,放在同一个分组里 ,同一时间,只有一个按钮会被选中

//按钮分组
ButtonGroup bg = new ButtonGroup();
bg.add(b1);
bg.add(b2);
下拉框

JComboBox 下拉框

  1. 使用getSelectedItem来获取被选中项
  2. 使用setSelectedItem()来指定要选中项
//下拉框出现的条目
String[] arrays = {"下拉1","下拉2","下拉3"};
JComboBox cb = new JComboBox(arrays);
cb.setBounds(50,50,100,30);
对话框

JOptionPane 用于弹出对话框

  1. JOptionPane.showConfirmDialog(f, "");
    表示询问,第一个参数是该对话框以哪个组件对齐
  2. JOptionPane.showInputDialog(f, "");
    接受用户的输入
  3. JOptionPane.showMessageDialog(f, "");
    显示消息
int option = JOptionPane.showConfirmDialog(f,"是否使用外挂?");
if(JOprionPane.OK_OPTION == option){
    String answer = JOptionPane.showInputDialog(f,"请输入yes,表明使用外挂后果自负");
    if("yes".equals(answer))
        JOptionPane.showMessageDialog(f."你已被封号");
}
文本框

JTextField 输入框

  1. setText 设置文本
  2. getText 获取文本
    JTextField是单行文本框,如果要输入多行数据,请使用JTextArea
JTextField t1 = new JTextField("");
t1.setText("请输入账号");
t1.setBounds(50,50,100,30);

JTextField t2 = new JTextField("");
t2.setText("请输入密码");
t2.setBounds(160,50,100,30);
密码框

JPasswordField 密码框
获取密码框里的内容,推荐使用getPassword,该方法会返回一个字符数组,而非字符串

//密码框
JPasswordField pf = new JPasswordField("");
pf.setText("$sdh1lj3$");
pf.setBounds(50,50,100,30);

//用getPassword获取密码
char[] password = pf.getPassword();
String p = String.valueOf(password);
System.out.println(P);
文本域

JTextArea 文本域

  1. 文本域可以输入多行数据,通过\n来实现换行效果
  2. append来进行数据追加
  3. 通过setLineWrap(true)来做到自动换行
JTextArea ta = new JTextArea();
ta.setBounds(50,50,200,150);
//\n换行符
ta.setText("这是第一行 \n这是第二行 \n");
//追加数据
ta.append("这是追加的内容");
//设置自动换行
ta.setLineWrap(true);
进度条

JProgressBar 进度条

f.setLayout(new FlowLayout());
JProgressBar pb = new JProgressBar();

//进度条最大100
pb.setMaximum(100);
//当前进度为50
pb.setValue(50);
//显示当前进度
pb.setStringPainted(true);
文件选择器

JFileChooser 表示文件选择器
使用FileFilter用于仅选择.txt文件

  1. fc.showOpenDialog(); 用于打开文件
  2. fc.showSaveDialog(); 用于保存文件
package gui;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
public class File_Filter {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame f = new JFrame();
		f.setLayout(new FlowLayout());
		JFileChooser fc = new JFileChooser();
		
		//使用FileFilter
		fc.setFileFilter(new FileFilter() {
			
			@Override
			public String getDescription() {
				// TODO Auto-generated method stub
				return ".txt";
			}
			
			@Override
			public boolean accept(File f) {
				// TODO Auto-generated method stub
				return f.getName().toLowerCase().endsWith(".txt");
			}
		});
		JButton bopen = new JButton("打开文件");
		JButton bsave = new JButton("保存文件");
		f.add(bopen);
		f.add(bsave);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(250,150);
		f.setLocationRelativeTo(null);
		f.setVisible(true);
		
		//增加按钮监听
		bopen.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				int returnval = fc.showOpenDialog(f);
				File file = fc.getSelectedFile();
				if(returnval == JFileChooser.APPROVE_OPTION){
					JOptionPane.showMessageDialog(f, "计划打开文件:"+file.getAbsolutePath());
				}
			}
		});
		bsave.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e){
				// TODO Auto-generated method stub
				int returnval = fc.showSaveDialog(f);
				File file = fc.getSelectedFile();
				if(returnval == JFileChooser.APPROVE_OPTION){
					JOptionPane.showMessageDialog(f, "计划保存文件:"+file.getAbsolutePath());
				}
			}
		});
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值