java中swing组件的综合介绍和使用

  1. 首先咱们要了解swing组件有哪些
    java

    JButton;表明按钮,按钮里面能够放图片和文字数组

    JCheckBox;表明复选框组件框架

    JComBox;表明的是下拉列表框ide

    JFrame;表明框架类布局

    JDialog;对话框学习

    JLabel;标签组件this

    JButton;按钮组件spa

    JRadioButton;单选钮组件orm

    JList;显示一系列内容的组件事件

    JTextField;文本框

    JPasswordField;密码框

    JTextArea;多行文本框,文本域

    JOpionPanel;对话框

以上组件的方法和用处大可能是一致的,因此就不举例了,咱们下面看综合实例便可知道他们的用处


贴上一个简单的用户注册信息窗体,里面包含了JLabel,JCheckBox,JButton,JRadioButton组件的使用


package demo;

import java.awt.*;

import javax.swing.*;

public class Demo3 extends JFrame{

JLabel jl1,jl2;

JCheckBox jc1,jc2,jc3;

JRadioButton jr1,jr2;

JButton jb1,jb2;

JPanel jp1,jp2,jp3;


public static void main(String[] args) {

// TODO Auto-generated method stub

new Demo3();


}

public Demo3(){

//初始化组件

jl1=new JLabel("你的兴趣爱好");

jl2=new JLabel("你的性别");

jc1=new JCheckBox("篮球");

jc2=new JCheckBox("足球");

jc3=new JCheckBox("羽毛球");

jr1=new JRadioButton("男");

jr2=new JRadioButton("女");

ButtonGroup bGroup=new ButtonGroup();

bGroup.add(jr1);

bGroup.add(jr2);

jb1=new JButton("注册");

jb2=new JButton("取消");

jp1=new JPanel();

jp2=new JPanel();

jp3=new JPanel();

//组件的合并

jp1.add(jl1);

jp1.add(jc1);

jp1.add(jc2);

jp1.add(jc3);

jp2.add(jl2);

jp2.add(jr1);

jp2.add(jr2);

jp3.add(jb1);

jp3.add(jb2);

//设置布局管理器的模式

this.setLayout(new GridLayout(3,1));

this.add(jp1);

this.add(jp2);

this.add(jp3);

//设置属性

this.setTitle("注册用户信息");

this.setSize(300, 150);

this.setLocation(200, 200);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

}


上面的案例包括了布局管理器的使用,接下来让咱们来学习一下经常使用的布局管理器有哪几种

  1. 边界布局管理;BorderLayout

  2. 流式布局管理;FlowLayout

  3. 网格布局管理;GridLayout

    通常咱们知道以上3种就能够了,在JFrame中,默认的是BorderLayout布局,而BorderLayout的特性是它以中,东,南,西,北的方式来布局,咱们在放置组件时每每经过 .方向 (如:.SOUTH)来肯定位置.

    FlowLayout它是并排以行数来放置组件的,位置不够时自动换行。

    GridLayout顾名思义就是网状来布局组件,一般咱们在设置布局为网格布局时,每每会带上它的行列数。如:setLayout(new GridLayout(3,1)),设置了一个3行1列的网格布局。

学完了组件和布局,下面咱们就来看下JPanel的使用

首先,JPanel也是一个容器,它默认的布局就是FlowLayout,它的做用每每是为了解决复杂布局的使用,下面看个例子来体验下综合布局中使用JPanel的效果。


package demo;

import java.awt.*;

import javax.swing.*;


public class Demo1 extends JFrame{

JPanel jp1,jp2;

JButton jb1,jb2,jb3,jb4,jb5,jb6;

public static void main(String[] args) {

new Demo1();

}

public Demo1(){

jp1=new JPanel();

jp2=new JPanel();

jb1=new JButton("桃子");

jb2=new JButton("西瓜");

jb3=new JButton("葡萄");

jb4=new JButton("苹果");

jb5=new JButton("香蕉");

jb6=new JButton("橘子");

//把按钮添加到JPanel里面去

jp1.add(jb1);

jp1.add(jb2);

jp2.add(jb3);

jp2.add(jb4);

jp2.add(jb5);

//把全部布局放到JFrame

this.add(jp1,BorderLayout.NORTH);

this.add(jb6,BorderLayout.CENTER);

this.add(jp2,BorderLayout.SOUTH);

//设置JFrame的属性

this.setTitle("多布局的混合使用");

this.setLocation(200, 200);

this.setSize(300, 150);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}


}


JPanel的做用不中体如今一方面,后面咱们学习到java绘图技术也能用到


好了,最后咱们就学习一下监听器吧,所谓监听器就是组件的监听事件

    在这里我还举例最经常使用的监听来讲,由于这一章节的内容都是千篇一概的用法,咱们掌握了最基本的就能够了。


/**

 * 登录窗体的实现,并响应按钮事件

 */

package com.demo;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


import javax.swing.*;


public class Test3 extends JFrame implements ActionListener{


JLabel jla1,jla2;

JTextField jf;

JPasswordField jps;

JButton jb1,jb2;

JPanel jp1,jp2,jp3;

public static void main(String[] args) {

// TODO Auto-generated method stub

new Test3();

}

public Test3(){

jla1=new JLabel("用户名");

jla2=new JLabel("密  码");

jf=new JTextField(10);

jps=new JPasswordField(10);

jb1=new JButton("登录");

jb1.addActionListener(this);

jb2=new JButton("退出");

jp1=new JPanel();

jp2=new JPanel();

jp3=new JPanel();

//合并组件

jp1.add(jla1);

jp1.add(jf);

jp2.add(jla2);

jp2.add(jps);

jp3.add(jb1);

jp3.add(jb2);

//设置布局管理器

this.setLayout(new GridLayout(3,1));

//增长到管理器中

this.add(jp1);

this.add(jp2);

this.add(jp3);

//设置Jframe的相关属性

this.setTitle("登录");

this.setSize(300, 200);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(jf.getText().equals("")|| jps.getText().equals(""))

{

JOptionPane.showMessageDialog(null, "帐号名或者密码不能为空");

}

else

JOptionPane.showMessageDialog(null, "登录成功");


}}


/**

 * 用按钮把数组的内容添加到下拉列表框里

 */

package com.demo;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


import javax.swing.*;


public class Test2 extends JFrame implements ActionListener{


JButton jButton;

JComboBox jcBox;

String []str={"hello","what","bitch","fuck"};

 

public static void main(String[] args) {

// TODO Auto-generated method stub

new Test2();

}

public Test2(){

jButton=new JButton("add");

jButton.addActionListener(this);

jcBox=new JComboBox();

this.add(jcBox,BorderLayout.NORTH);

this.add(jButton,BorderLayout.SOUTH);

this.setTitle("hello");

this.setSize(300, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

for(int i=0;i<str.length;i++){

jcBox.addItem(str[i]);

}

}


}


最后说一句,如今java绘图和swimng相对不那么重要了,但基本的咱们仍是要了解的。

相关文章
相关标签/搜索