JTextArea JPanel JComboBox JTextField JButton JScrollPane 小练习!

本文介绍了一个使用Java Swing实现的简易聊天窗体的设计与实现过程。该窗体包含消息显示区、用户选择框、输入框及发送按钮等元素,并展示了如何布局这些组件以创建直观的用户界面。

分享一下我的小练习!


import java.awt.BorderLayout;


import javax.swing.*;
public class ChatForm extends JFrame{

	private JTextArea ta;
	private JPanel jp;
	private JComboBox cb;
	private JTextField jf;
	private JButton jb;
	private JScrollPane sp;

	public ChatForm() {

		this.setBounds(500, 150, 500, 500);
		this.setTitle("LoginForm");
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setResizable(false);
		this.setLayout(new BorderLayout());
		
		ta = new JTextArea();
		sp = new JScrollPane(ta);
		this.add(sp,BorderLayout.CENTER);
		
		cb = new JComboBox<Object>(new String[]{"小明","小亮","小光"});
		jp =new JPanel();
		jp.add(cb);
		
		jf = new JTextField(20);
		
		jp.add(jf);
		
		jb = new JButton("发送");
		jp.add(jb);
		
		this.add(jp,BorderLayout.SOUTH);
		this.setVisible(true);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new ChatForm();
	}


}

运行结果:



                
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class StudentRegistrationForm extends JFrame { // 定义各个组件 private JTextField nameField; private JRadioButton maleRadio, femaleRadio; private JTextField birthDateField; private JTextField schoolField; private JComboBox<String> majorComboBox; private JCheckBox basketballCheckBox, volleyballCheckBox, footballCheckBox, swimmingCheckBox; private JFileChooser fileChooser; private JButton uploadButton; private JTextField passwordField; private JTextArea introTextArea; private JButton submitButton, cancelButton; public StudentRegistrationForm() { // 设置窗口标题 setTitle("学生信息注册"); // 设置窗口大小 setSize(600, 500); // 设置窗口关闭操作 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口居中显示 setLocationRelativeTo(null); // 创建一个面板,使用网格布局 JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.insets = new Insets(5, 5, 5, 5); gbc.anchor = GridBagConstraints.WEST; // 添加姓名标签和文本框 gbc.gridx = 0; gbc.gridy = 0; panel.add(new JLabel("姓名:"), gbc); gbc.gridx = 1; nameField = new JTextField(20); nameField.setText("Your name..."); panel.add(nameField, gbc); // 添加性别标签和单选按钮 gbc.gridx = 0; gbc.gridy = 1; panel.add(new JLabel("性别:"), gbc); gbc.gridx = 1; ButtonGroup genderGroup = new ButtonGroup(); maleRadio = new JRadioButton("男"); femaleRadio = new JRadioButton("女"); genderGroup.add(maleRadio); genderGroup.add(femaleRadio); JPanel genderPanel = new JPanel(); genderPanel.add(maleRadio); genderPanel.add(femaleRadio); panel.add(genderPanel, gbc); // 添加出生日期标签和文本框 gbc.gridx = 0; gbc.gridy = 2; panel.add(new JLabel("出生日期:"), gbc); gbc.gridx = 1; birthDateField = new JTextField("2000-01-01", 20); panel.add(birthDateField, gbc); // 添加学校标签和文本框 gbc.gridx = 0; gbc.gridy = 3; panel.add(new JLabel("学校:"), gbc); gbc.gridx = 1; schoolField = new JTextField(20); panel.add(schoolField, gbc); // 添加专业标签和下拉框 gbc.gridx = 0; gbc.gridy = 4; panel.add(new JLabel("专业:"), gbc); gbc.gridx = 1; String[] majors = {"计算机科学与技术", "软件工程", "电子信息工程", "通信工程"}; majorComboBox = new JComboBox<>(majors); panel.add(majorComboBox, gbc); // 添加体育特长标签和复选框 gbc.gridx = 0; gbc.gridy = 5; panel.add(new JLabel("体育特长:"), gbc); gbc.gridx = 1; basketballCheckBox = new JCheckBox("篮球"); volleyballCheckBox = new JCheckBox("排球"); footballCheckBox = new JCheckBox("足球"); swimmingCheckBox = new JCheckBox("游泳"); JPanel sportsPanel = new JPanel(); sportsPanel.add(basketballCheckBox); sportsPanel.add(volleyballCheckBox); sportsPanel.add(footballCheckBox); sportsPanel.add(swimmingCheckBox); panel.add(sportsPanel, gbc); // 添加上传照片标签和按钮 gbc.gridx = 0; gbc.gridy = 6; panel.add(new JLabel("上传照片:"), gbc); gbc.gridx = 1; uploadButton = new JButton("选择文件"); fileChooser = new JFileChooser(); uploadButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int returnVal = fileChooser.showOpenDialog(StudentRegistrationForm.this); if (returnVal == JFileChooser.APPROVE_OPTION) { // 这里可以处理文件上传逻辑 System.out.println("已选择文件: " + fileChooser.getSelectedFile().getName()); } } }); panel.add(uploadButton, gbc); // 添加密码标签和文本框 gbc.gridx = 0; gbc.gridy = 7; panel.add(new JLabel("密码:"), gbc); gbc.gridx = 1; passwordField = new JTextField(20); panel.add(passwordField, gbc); // 添加个人介绍标签和文本域 gbc.gridx = 0; gbc.gridy = 8; panel.add(new JLabel("个人介绍:"), gbc); gbc.gridx = 1; introTextArea = new JTextArea(5, 20); introTextArea.setText("..."); JScrollPane scrollPane = new JScrollPane(introTextArea); panel.add(scrollPane, gbc); // 添加提交和取消按钮 gbc.gridx = 0; gbc.gridy = 9; gbc.gridwidth = 2; gbc.anchor = GridBagConstraints.CENTER; JPanel buttonPanel = new JPanel(); submitButton = new JButton("提交"); cancelButton = new JButton("取消"); submitButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 这里可以处理提交逻辑 System.out.println("提交按钮被点击"); } }); cancelButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // 这里可以处理取消逻辑 System.out.println("取消按钮被点击"); } }); buttonPanel.add(submitButton); buttonPanel.add(cancelButton); panel.add(buttonPanel, gbc); // 将面板添加到窗口 add(panel); } public static void main(String[] args) { // 使用 SwingUtilities 确保在事件调度线程中创建和显示 GUI SwingUtilities.invokeLater(new Runnable() { @Override public void run() { StudentRegistrationForm form = new StudentRegistrationForm(); form.setVisible(true); } }); } } 以上代码结果是怎样的
最新发布
10-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值