GUI图形编程(3)---组件_JComponent

本文深入探讨了Java GUI编程中JComponent类的重要性和使用,作为Swing库的基础组件,它为创建自定义控件提供了强大的支持。通过继承JComponent,开发者可以方便地添加事件处理、绘图功能,并实现组件的定制化。了解JComponent的基本属性和方法对于提升Java图形用户界面的开发能力至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

           

 

package org.lanqiao.gui.demo;

import java.awt.Toolkit;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;

//JPanel面板
public class JPanelDemo {
	private static final int F_WIDTH = 300;
	private static final int F_HEIGH = 300;

	public static void main(String[] args) {
		// 创建窗体
		JFrame frame = new JFrame();
		frame.setTitle("第一个GUI程序");
		// 设置窗体的大小
		frame.setSize(F_WIDTH, F_HEIGH);
		// 设置窗体的位置
		// frame.setLocation(100, 100);
		// 设置窗口在屏幕中央位置显示
		// 1获取当前屏幕的宽和高
		double screenWidth = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
		double screenHeigh = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		double x = (screenWidth - F_WIDTH) / 2;
		double y = (screenHeigh - F_HEIGH) / 2;
		frame.setLocation((int) x, (int) y);
		// 设置当点击窗体的关闭按钮之后,让程序结束运行
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 设置窗体的大小是否可改变
		frame.setResizable(false);
		
		JPanel panel = new JPanel();// 创建了一个面板
		// 将面板添加到窗体中
		frame.add(panel);
		// 创建一个标签
		JLabel label = new JLabel("用户名:");
		// 将标签添加到面板中
		panel.add(label);
		//创建一个文本框
		JTextField username =  new JTextField();
		//username.setSize(100, 20);
		//username.setBounds(20, 20, 100, 20);
		username.setColumns(10);//设置文本框的宽度
		
		//将文本框添加到面板中
		panel.add(username);
		//密码
		JLabel label2 = new JLabel("密码");
		panel.add(label2);
		JPasswordField password = new JPasswordField(10);
		panel.add(password);
		//单选按钮
		ButtonGroup bg = new ButtonGroup();
		JRadioButton man = new JRadioButton("男");
		JRadioButton women = new JRadioButton("女");
		JRadioButton sex = new JRadioButton("不知道");
		bg.add(man);
		bg.add(women);
		panel.add(man);
		panel.add(women);
		panel.add(sex);
		//创建一个文本域
		JTextArea jianjie  = new JTextArea();
		jianjie.setColumns(10);
		jianjie.setRows(10);
		panel.add(jianjie);
		// 创建一个按钮
		JButton but = new JButton("这是一个按钮");
		panel.add(but);
		panel.repaint();
		// 设置窗体可见
		frame.setVisible(true);
	}

}
package org.lanqiao.gui.demo;

import java.awt.Toolkit;

import javax.swing.JFrame;

public class MyFrame extends JFrame {
	private static final int F_WIDTH = 300;
	private static final int F_HEIGH = 300;
	public void init() {

		//创建窗体
		JFrame frame = new JFrame();
		frame.setTitle("第一个GUI程序");
		//设置窗体的大小
		frame.setSize(F_WIDTH, F_HEIGH);
		//设置窗体的位置
		//frame.setLocation(100, 100);
		//设置窗口在屏幕中央位置显示
		//1获取当前屏幕的宽和高
		double screenWidth = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
		double screenHeigh = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
		double x = (screenWidth - F_WIDTH)/2; 
		double y = (screenHeigh - F_HEIGH) / 2;
		frame.setLocation((int)x, (int)y);
		//设置当点击窗体的关闭按钮之后,让程序结束运行
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//设置窗体的大小是否可改变
		frame.setResizable(false);
		//设置窗体可见
		frame.setVisible(true);
	}
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值