JAVA中窗体的有关操作

导包快捷键:

       要导包时直接ctrl + shift + o 就有了

窗体的基本操作:

//设置窗体位置和长宽
f.setBounds(500, 300, 500, 400);

//创建窗体标题
f.setTitle("数据转换");

//设置布局为流式布局
f.setLayout(new FlowLayout());

//创建按钮
Button b = new Button("数据转移");

//创建文本框
TextField tf = new TextField(20);

//创建文本域
TextArea ta = new TextArea(10, 40);

//设置窗体颜色
f.setBackground(Color.green);

//把组件添加到窗体
f.add(b);

//设置窗体关闭
f.addWindowListener(new WindowAdapter() {
	public void windowClosing(WindowEvent e) {
		System.exit(0);
	}
});

//显示窗体
f.setVisible(true);

//添加按钮监听(接口)
b.addActionListener(new ActionListener() {
	public void actionPerformed(ActionEvent e) {

	}
});

//添加鼠标监听(接口)
grayButton.addMouseListener(new MouseAdapter() {
	public void mouseEntered(MouseEvent e) {
		//鼠标移动到按钮上就改变背景颜色
		f.setBackground(Color.gray);
	}
});

//给文本框添加事件
tf.addKeyListener(new KeyAdapter() {
	public void keyPressed(java.awt.event.KeyEvent e) {
		char ch = e.getKeyChar();
		//如果输入不是数字,就不录入
		if(!(ch>='0' && ch<='9')) {
			e.consume();
		}
	}
});

创建窗体:

import java.awt.Frame;

public class WindowDemo2 {
	public static void main(String[] args) {
		Frame f = new Frame();

		//窗体的位置和长宽
		f.setBounds(500, 200, 300, 300);

		//窗体的标题
		f.setTitle("第一个界面");

		//3秒后显示
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		//显示窗体
		f.setVisible(true);
	}
}

显示:

 

关闭窗体:

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class WindowDemo {
	public static void main(String[] args) {
		Frame f = new Frame();
		//窗体的位置及长宽
		f.setBounds(500, 200, 300, 300);
		
		//窗体的标题
		f.setTitle("窗口关闭");
		
		//关闭窗体
		f.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);;
			}
		});
		
		//显示窗体
		f.setVisible(true);
	}
}

在窗体中添加按钮:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class WindowDemo4 {
	public static void main(String[] args) {
		Frame f = new Frame();
		
		//设置窗体位置和长宽
		f.setBounds(500, 300, 300, 300);
		
		//设置窗体标题
		f.setTitle("设置按钮");
		
		//设置布局为流式布局
		f.setLayout(new FlowLayout());
		
		//设置按钮
		Button b = new Button("我是按钮");
		
		//把按钮添加到窗体中
		f.add(b);
		
		//设置窗体内容
		b.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("别按了");
			}
		});
		
		//关闭窗体
		f.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);;
			}
		});
		
		//显示窗体
		f.setVisible(true);
	}
}

显示:

 

文本框,按钮,文本域的创建:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class SetWindow {
	public static void main(String[] args) {
		Frame f = new Frame();
		
		//设置窗体位置和长宽
		f.setBounds(500, 300, 500, 400);;
		
		//创建窗体标题
		f.setTitle("数据转换");
		
		//设置布局为流式布局
		f.setLayout(new FlowLayout());
		
		//创建文本框
		TextField tf = new TextField(20);
		//创建按钮
		Button b = new Button("数据转移");
		//创建文本域
		TextArea ta = new TextArea(10, 40);
		
		
		//把组件添加到窗体
		f.add(tf);
		f.add(b);
		f.add(ta);
		
		//设置窗体关闭
		f.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		//对按钮添加事件
		b.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				//获取文本框的值
				String tf_str = tf.getText().trim();
				
				//清空数据
				tf.setText("");
				
				//设置给文本域,每次换行
				ta.append(tf_str+"\r\n");
				
				//获取光标
				tf.requestFocus();
			}
		});
		
		
		//显示窗体
		f.setVisible(true);
	}
}

显示:

 

限定字符的输入和标签的使用方法:

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class SetWindow1 {
	public static void main(String[] args) {
		//设置标题
		Frame f = new Frame("不能输入非数字字符");
		
		//设置窗体位置,大小
		f.setBounds(500, 150, 400,400);
		
		//设置窗体背景颜色
		f.setBackground(Color.PINK);
		
		//设置布局为流式布局
		f.setLayout(new FlowLayout());
		
		//创建标签
		Label label = new Label("请输入你的QQ号,不能是非数字");
		
		//创建文本框
		TextField tf = new TextField(40);
		
		//把插件添加到窗体
		f.add(label);
		f.add(tf);
		
		//关闭窗体
		f.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		//给文本框添加事件
		tf.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(java.awt.event.KeyEvent e) {
				char ch = e.getKeyChar();
				
				//如果输入不是数字,就不录入
				if(!(ch>='0' && ch<='9')) {
					e.consume();
				}
			}
		});
		
		//显示窗体
		f.setVisible(true);
	}
}

显示:

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java,如果需要在一个线程窗体控件赋值,需要注意以下几点: 1. 窗体控件只能在创建它的线程进行操作,如果在其他线程直接修改窗体控件,程序会抛出异常。 2. 如果需要在其他线程更新窗体控件的值,可以使用Java Swing提供的方法SwingUtilities.invokeLater()。该方法可以将更新控件的操作放到事件队列,以便在Swing的事件调度线程执行,从而避免多线程冲突。 下面是一个简单的示例代码,演示如何在Java使用线程更新窗体控件的值: ``` import javax.swing.*; public class MainFrame extends JFrame { private JLabel label; public MainFrame() { label = new JLabel("Hello, world!"); add(label); setSize(200, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void updateLabelText(final String text) { SwingUtilities.invokeLater(new Runnable() { public void run() { label.setText(text); } }); } } public class Main { public static void main(String[] args) { final MainFrame frame = new MainFrame(); new Thread(new Runnable() { public void run() { while (true) { frame.updateLabelText("Time: " + System.currentTimeMillis()); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } } ``` 在这个示例代码,我们创建了一个包含一个标签控件的窗体MainFram,然后创建了一个线程,每隔一秒钟更新标签的文本。在updateLabelText方法,我们使用SwingUtilities.invokeLater方法将更新控件的操作放到事件队列,从而避免多线程冲突。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值