javax.swing的基本组成

目录一、基本容器1.1 JFrame1.2 JDialog二、基本容器2.1 AbsoluteLayout2.2 BorderLayout2.3 FlowLayout2.4 GridLayout三、面板容器3.1 JPanel3.2 JScrollPane四、基本组件4.1 JLabel带有Icon与ImageIcon4.2 JButton4.3 JRadioButton4.4 JCheckButton4.5 列表组件4.5.1 JCo
摘要由CSDN通过智能技术生成

目录

一、基本容器

1.1 JFrame

1.2 JDialog

二、基本布局

2.1 AbsoluteLayout

2.2 BorderLayout

2.3 FlowLayout

2.4 GridLayout

三、面板容器

3.1 JPanel

3.2 JScrollPane

四、基本组件

4.1 JLabel带有Icon与ImageIcon

4.2 JButton

4.3 JRadioButton

4.4 JCheckButton

4.5 列表组件

4.5.1 JComboBox

4.5.2 JList

4.6 文本组件

4.6.1 JTextField

4.6.2 JPasswordField

4.6.3 JTextArea


一、基本容器

1.1 JFrame

package com.zyx.mySwing.myContainers;

import java.awt.Color;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
/**
 * java.awt.Container类是javax.swing.JComponent的父类
 * 对于容器,如果继承了了JFrame,则此类可以直接调用getContentPane()获取一个容器Container container =getContentPane(); 
 * 也可以先定义一个JFrame对象jf,然后用jf调用getContentPane()获取一个容器Container container = jf.getContentPane();
 * 
 * 设置容器,需要针对JFrame对象jf设置。jf.set();
 * 添加部件,需要针对Container对象container设置。container.add(JComponent);
 * 
 * JFrame的构造方法:
 * public JFrame()
 * public JFrame(String title)
 */
public class JFrameExp1 extends JFrame{
	public void createFirstJFrame(String title) {
		JFrame jFrame = new JFrame(title);
		Container container = jFrame.getContentPane();//获取一个容器
		JLabel jl = new JLabel("这是一个JFrame窗体");
		// 使标签上的文字居中
		jl.setHorizontalAlignment(SwingConstants.CENTER);
		container.add(jl);
		container.setBackground(Color.blue);
		jFrame.setVisible(true);
		jFrame.setSize(200,150);
		jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//		jFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
//		jFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
//		jFrame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
	}

	public static void main(String[] args) {
		(new JFrameExp1()).createFirstJFrame("test JFrame");
	}
}

1.2 JDialog

package com.zyx.mySwing.myContainers;

import java.awt.Color;
import java.awt.Container;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
/**
 * JDialog来作为容器,一般情况下其需要基于父容器中生成
 * public JDialog()
 * public JDialog(Frame f)
 * public JDialog(Frame f,boolean model)
 * public JDialog(Frame f,String title)
 * public JDialog(Frame f,String title,boolean model)
 * JFrame是Frame的子类
 * 
 * JDialog只支持:HIDE_ON_CLOSE\DISPOSE_ON_CLOSE\DO_NOTHING_ON_CLOSE
 *
 */
public class JDialogwithJFrame extends JFrame{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public JDialogwithJFrame() {
		JFrame jFrame= new JFrame("JFrame contains JDialog");
		Container container = jFrame.getContentPane();
		JLabel jLabel = new JLabel("这是一个JFrame");
		jLabel.setHorizontalAlignment(SwingConstants.CENTER);
		container.add(jLabel);
		JButton jb = new JButton("弹出对话框");
		jb.setBounds(10,10,100,21);
		jb.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				(new MyJDialog(JDialogwithJFrame.this)).setVisible(true);
			}
		});
		container.add(jb);
		jFrame.setBackground(Color.cyan);
		jFrame.setVisible(true);
		jFrame.setSize(200,150);
		jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	class MyJDialog extends JDialog{
		public MyJDialog(Frame frame) {
			super(frame,"myfirst JDialog",true);
			Container container = getContentPane();
			JLabel jl = new JLabel("这是一个JDialog");
			container.add(jl);
//			this.setVisible(true);
			this.setBounds(120,120,100,100);
			this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		}
	}
	public static void main(String[] args) {
		new JDialogwithJFrame();
	}
}

二、基本布局

2.1 AbsoluteLayout

package com.zyx.mySwing.myLayout;

import java.awt.Container;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
/**
 * Container.setLayout(null);取消布局管理器
 * Component.setBounds();设置每个组件的大小与位置
 */

public class AbsoluteLayout extends JFrame{
	public AbsoluteLayout() {
		setTitle("本窗体使用绝对布局");
		setBounds(100, 100, 500, 500);
		setLayout(null);
		Container container = getContentPane();
		JButton jb1 = new JButton("按钮1");
		JButton jb2 = new JButton("按钮2");
		jb1.setBounds(110, 110, 100, 20);
		jb2.setBounds(110, 140, 100, 20);
		container.add(jb1);
		container.add(jb2);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new AbsoluteLayout();
	}
}

2.2 BorderLayout

package com.zyx.mySwing.myLayout;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.WindowConstants;
/**
 * 边界布局管理器
 * Swing的默认布局管理器是边界布局管理器BorderLayout
 * 组件置于四个位置:
 * BorderLayout.NORTH
 * BorderLayout.SOUTH
 * BorderLayout.EAST
 * BorderLayout.WEST
 * BorderLayout.CENTER
 *
 */
public class BorderLayoutTest extends JFrame{
	String[] border = {BorderLayout.CENTER,BorderLayout.WEST,BorderLayout.EAST,
			BorderLayout.NORTH,BorderLayout.SOUTH};
	String[] buttonName = {"Center","West","East","North","South"};
	public BorderLayoutTest() {
		setTitle("这个窗体使用边界布局管理器");
		Container container =getContentPane();
		setLayout(new BorderLayout());
		for(int i=0;i<border.length;i++) {
			container.add(border[i],new Button(buttonName[i]));
		}
		setSize(500,500);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new BorderLayoutTest();
	}
}

2.3 FlowLayout

package com.zyx.mySwing.myLayout;

import java.awt.Container;
import jav
  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零开始的智障生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值