java中常见Swing组件

Swing组件按功能分为以下几类:
1、顶层容器:JFrame,JApplet,JDialog
2、中间容器:JPanel,(滚动面板)JScrollPane,
(分割面板)JSplitPane,(工具栏)JToolBar
3、特殊容器:(分层面板)JLayeredPane,(根面板)JRootPane,(内部窗口)JInternalPane,(菜单栏)JMenuBar
(特殊容器也属于中间容器,即在用户具有特殊作用的中间容器)
4、基本组件:

组件描述
JLabel标签
JButton按钮
JTextArea文本区
JTextField文本框
JRadioButton单选按钮
JCheckBox复选框
JPasswordField密码框
JComboBox下拉列表框
JList列表
JProgressBar进度条
JTable表格
JTree

在组件中显示跟电脑同步的时间

//构造方法
public aaa(){
   JLable  lab = new JLabel();
   this.setTimer(lab);
}


 private void setTimer(JLabel lab) {
   //设置Timer 1000ms实现一次动作 实际是一个线程
  final JLabel varTime = lab;
  Timer timeAction = new Timer(2000, e -> {
  long timemillis = System.currentTimeMillis();
  
  //转换日期显示格式
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  varTime.setText(df.format(new Date(timemillis)));
  });
  timeAction.start();
}

一.窗口JFrame

JFrame frame=new JFrame("窗口标题");         //构造方法,创建窗体对象
frame.setTitle("窗口标题");                  //可在创建对象中写标题,亦可以调用这个方法
frame.setVisible(true);                     //设置窗口可见
frame.setBounds(200,200,200,30);    //设置窗口的位置(x坐标,y坐标)和窗体大小(长,宽)
frame.pack();            //自动适配组件的大小
frame.getContentPane(panel);   //将面板panel(中间容器)设置为窗体内容面板
frame.setLayout(null);     //采用绝对布局,通过坐标指定组件的位置,注意程序顺序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //点击×退出窗口

(1)只设置窗体的大小,调用方法setSize()
(2)只设置窗体的位置,调用方法setLocation()
(3)亦可以调用方法setLocationRelativeTo(null),无论窗口多大,窗体都会出现在屏幕的中心

frame.setSize(200,200);      //设置坐标x和y
frame.setLocation(200,200);   //设置长和宽
frame.setBounds(200,200,200,200);     //设置窗体的位置和大小
frame.setLocationRelativeTo(null);

(4)获取内容面板

Container ct = frame.getContentPane();  //获取内容面板容器
ct.add();     //将组件加入内容面板中


frame.getContentPane().add(panel);

二、面板JPanel

一个窗体可以设置多个面板

JPanel panel = new JPanel();         //构造方法
panel.setBackground(Color.white);    //设置面板颜色
panel.setLayout(null);              //设置布局管理器
panel.setBounds(45,20,300,120);     //设置面板的位置和大小

(1)可以自定义颜色,快捷键win+R,输入mspaint,点击编辑颜色,红黄绿后面的数字及是Color(R,G,U)中的三个数字,其他组件亦可以调用这个方法来自定义颜色

panel.setOpaque(true);
panel.setBackground(new Color(170,224,238));   //自定义颜色

在这里插入图片描述
三、标签JLabel

图片是标签的组件

JLabel lab = new JLabel("标签中字体");

//将图片添加到标签中,"src/2.jpg"是图片的地址
Icon pic1 = new ImageIcon("src/2.jpg");
lab.setIcon(pic1);      

lab.setBounds(35, 35, 45, 45);   //设置标签的大小
lab.setOpaque(true);         //必须设置不透明,否则将不显示颜色
lab.setForeground(Color.ORANGE);   //设置标签中字体颜色
lab.setBackground(new Color(170,224,238));   //设置标签背景颜色

(1)设置字体

其他组件中的字体亦可以调用setFont()方法设置字体

 Font font = new Font("宋体",Font.BOLD,13);
 lab.setFont(font);

四、按钮JButton

JButton bt=new JButton("按钮中字体");
bt.setBorderPainted(false);          //去掉按钮边界
bt.setForeground(Color.black);       //设置按钮中字体颜色
bt.setFont(font);                    //设置按钮中字体
bt.setOpaque(true);            //必须设置不透明,否则将不显示颜色        
bt.setBackground(new Color(255,236,242));     //设置按钮背景颜色
bt.setBounds(270,635,130,30);                //设置按钮的位置和大小

一般点击按钮要跳转到下一个页面或者是跳出弹窗,所以会对其进行监听器注册,简单介绍一下

 bt.addMouseListener(new MouseAdapter() {   //注册监听器
 @Override
 public void mouseClicked(MouseEvent e) {
    super.mouseClicked(e);
    frame.setVisible(false);       //此页面消失
    sb=new Subscribe();        //创建下一个页面的对象,Subscribe是下一个页面的类名
    sb.setVisible(true);       //显示下一个页面
   }
 });

五、文本区JTextArea

文本框与文本区差不多,只是文本框只能输入一行信息

JTextArea text = new JTextArea("文本区中文字");
text.setLineWrap(true);              //使文本区中的文字自动换行
text.setWrapStyleWord(true);
text.setEditable(false);          //设置不可编辑
text.setFont(font);
text.setBounds(35,90, 230, 80);

六、表格JTable

DefaultTableModel model = new DefaultTableModel();
model.addColumn("周六", new Vector<Integer>());
model.addColumn("周日", new Vector<Integer>());
model.addColumn("周一",new Vector<String>());
model.addColumn("周二",new Vector<String>());
model.addColumn("周三",new Vector<String>());
model.addColumn("周四", new Vector<String>());
model.addColumn("周五",new Vector<String>());
JTable table = new JTable(model);
//将表格放在滚动面板中
JScrollPane jp = new JScrollPane(table);
jp.setBounds(35, 190, 330, 73);
//设置水平和垂直滚动条
jp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
jp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
 //设置留有空白的表格行数,即30,调用方法addRow,添加列数调用方法addColumn()  for(int k = 0;k < 30 ;k ++) {
      model.addRow(new Vector<Integer>());}   

七、下拉列表框JComboBox

Dimension dimension = new Dimension(220,30);
JComboBox<String> j = new JComboBox<>();
j.setSize(dimension);
j.addItem("按照姓名查询");
j.addItem("按照身份证号查询查询");
j.setBounds(70, 100,220, 30);
j.setBackground(Color.pink );

Dimension 是Java的一个类,封装了一个构件的高度和宽度,高度值和宽度值是整数,表明有多少个像素点

八、单选按钮JRadioButton

一组单选按钮只能有一个处于选中状态,JRadioButton通常位于一个ButtonGroup按钮组中

(1)JRadioButton rb=new JRadioButton(String text,boolean selected);
创建一个指定文本和选择状态的复选框

JRadioButton rb1=new JRadioButton("边牧"); 
JRadioButton rb2=new JRadioButton("金毛"); 
JRadioButton rb3=new JRadioButton("萨摩耶"); 
JRadioButton rb4=new JRadioButton("阿拉斯加犬"); 
ButtonGroup group=new ButtonGroup();

//添加JRadioButton到ButtonGroup中
group.add(rb1);
group.add(rb2);
group.add(rb3);
group.add(rb4);

panel.add(rb1);
panel.add(rb2);
panel.add(rb3);
panel.add(rb4);

九、复选框JCheckBox

JCheckBox jcb1 = new JCheckBox("边牧");
JCheckBox jcb2 = new JCheckBox("萨摩耶"); 
JCheckBox jcb3 = new JCheckBox("阿拉斯加犬");
JCheckBox jcb4 = new JCheckBox("柴犬");

panel.add(jcb1);
panel.add(jcb2);
panel.add(jcb3);
panel.add(jcb4);

(1)JCheckBox jcb4 = new JCheckBox(String text,boolean selected);
创建一个指定文本和选择状态的复选框


版权声明:本文为m0_56047445原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。