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 下拉框
- 使用getSelectedItem来获取被选中项
- 使用setSelectedItem()来指定要选中项
//下拉框出现的条目
String[] arrays = {"下拉1","下拉2","下拉3"};
JComboBox cb = new JComboBox(arrays);
cb.setBounds(50,50,100,30);
对话框
JOptionPane 用于弹出对话框
JOptionPane.showConfirmDialog(f, "");
表示询问,第一个参数是该对话框以哪个组件对齐JOptionPane.showInputDialog(f, "");
接受用户的输入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 输入框
- setText 设置文本
- 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 文本域
- 文本域可以输入多行数据,通过
\n
来实现换行效果 - 用
append
来进行数据追加 - 通过
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
文件
fc.showOpenDialog();
用于打开文件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());
}
}
});
}
}