JAVA 利用JFram,JPanel,JScrollPane简单文本框实现

article/2025/9/15 14:11:05

在这里插入图片描述
****1.JFram 支持通用窗口的所有基本功能

2…JPanel是一个无边框,不可以被移动的,放大的,缩小的,或者关闭的面板,默认布局是FlowLayout(也可用setLayout()来设定)**

3…JScrollPane是一个带有滚动条的面板容器,这个面板容器只可以加一个组件,如果想加多个组件,要把多个组件加到一个组件上,然后再加到面板容器上。**

package tank01;import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingUtilities;public class Draw01 {public static void main(String[] args) {SwingUtilities.invokeLater(Draw01::creatAndShowGUI);}@SuppressWarnings("all")private static void creatAndShowGUI() {JFrame f = new JFrame("wangjie");f.setSize(500, 500);f.setLocation(250, 250);f.setVisible(true);f.setLayout(new BorderLayout());f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// f.addWindowListener(new WindowListener(){//
//			@Override
//			public void windowOpened(WindowEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("窗口打开事件");
//			}
//
//			@Override
//			public void windowClosing(WindowEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("窗口正在关闭事件");
//			}
//
//			@Override
//			public void windowClosed(WindowEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("窗口关闭事件");
//			}
//
//			@Override
//			public void windowIconified(WindowEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("窗体图表化事件");
//			}
//
//			@Override
//			public void windowDeiconified(WindowEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("窗体取消图标化事件");
//			}
//
//			@Override
//			public void windowActivated(WindowEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("窗口激活事件");
//			}
//
//			@Override
//			public void windowDeactivated(WindowEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("窗体停用事件");
//			}
//			
//		});
//		f.setLayout(null);
//		JButton bu1 = new JButton("Button");
//		bu1.setBounds(20, 20, 20, 20);
//		f.add(bu1);
//		bu1.setSize(20,20);
//		bu1.addMouseListener(new MouseListener(){
//
//			@Override
//			public void mouseClicked(MouseEvent e) {
//				// TODO Auto-generated method stub
				System.out.println("鼠标单击事件");
//				if(e.getButton() == MouseEvent.BUTTON1){
//					System.out.println("鼠标左击事件");
//				}else if(e.getButton() == MouseEvent.BUTTON3){
//					System.out.println("鼠标右击事件");
//				}else if(e.getButton() == MouseEvent.BUTTON2){
//					System.out.println("鼠标中键单击事件");
//				}
//			}
//
//			@Override
//			public void mousePressed(MouseEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("鼠标按压事件");
//				
//			}
//
//			@Override
//			public void mouseReleased(MouseEvent e) {
//				// TODO Auto-generated method stub
//				System.out.println("鼠标放开事件");
//
//			}
//
//			@Override
//			public void mouseEntered(MouseEvent e) {
//				// TODO Auto-generated method stub
				System.out.println("鼠标进入按钮事件");
//
//			}
//
//			@Override
//			public void mouseExited(MouseEvent e) {
//				// TODO Auto-generated method stub
				System.out.println("鼠标移出按钮事件");
//
//			}
//			
//		});
//		//		JTextField tf = new JTextField(30);
//		f.add(tf);
//		tf.addKeyListener(new KeyAdapter(){
//			public void keyPressed(KeyEvent e){
//				char keyChar = e.getKeyChar();
//				int keyCode = e.getKeyCode();
//				System.out.println(keyChar);
//				System.out.println(keyCode);
//			}
//		});//		JScrollPane pane = new JScrollPane();
//		pane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//		pane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
//	
//		JPanel panel = new JPanel();
//		panel.add(new JButton("1"));
//		panel.add(new JButton("2"));
//		panel.add(new JButton("3"));
//		panel.add(new JButton("4"));
//		JTextField tf = new JTextField(30);
//		tf.addKeyListener(new KeyAdapter() {
//			public void keyPressed(KeyEvent e) {
//				char keyChar = e.getKeyChar();
//				int keyCode = e.getKeyCode();
//				System.out.println(keyChar);
//				System.out.println(keyCode);
//			}
//		});
//		panel.add(tf);
//		pane.setViewportView(panel);
//		f.add(pane,BorderLayout.CENTER);
//		String temp;JTextArea showArea = new JTextArea(12,34);//获得展示文本界面,不可以编辑JScrollPane pane = new JScrollPane(showArea);//获得滑动界面showArea.setEditable(false);JTextField inputField = new JTextField(20);JButton bu1 = new JButton(" 发送 ");inputField.addKeyListener(new KeyListener(){
//			String content = inputField.getText();@Overridepublic void keyTyped(KeyEvent e) {// TODO Auto-generated method stub}@Overridepublic void keyPressed(KeyEvent e) {if(e.getKeyCode() == KeyEvent.VK_ENTER){showArea.append("My information : " + inputField.getText() + "\n");inputField.setText("");//清除文本输入行}}@Overridepublic void keyReleased(KeyEvent e) {// TODO Auto-generated method stub}});bu1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {String content = inputField.getText();if(content!=null && !content.trim().equals("")){showArea.append("My information: "+ content + "\n");}else{showArea.append("information can not null \n");}inputField.setText("");}});JPanel panel = new JPanel();JLabel label = new JLabel("输入信息: ");panel.add(label);panel.add(inputField);panel.add(bu1);f.add(pane,BorderLayout.PAGE_START);f.add(panel,BorderLayout.PAGE_END);}
}

下面是运行结果图:
在这里插入图片描述

可以点击按钮或者回车键发送信息。


http://chatgpt.dhexx.cn/article/PdIStkjv.shtml

相关文章

deflater java_Java Deflater finished()用法及代码示例

如果已到达压缩数据输出流的末尾,则java.util.zip中Deflater类的finished()函数将返回true。 函数签名: public boolean finished() 用法: d.finished(); 参数:该函数不需要参数 返回类型:该函数返回布尔值,即如果所有…

jQuery API ( 三 ) -------- 链式编程 与 修改样式方法

今天这篇文章是 jQuery API 的第三篇,今天心情很好,因为破了300粉,希望所有代码人前端人在编程与写作的路上都能一帆风顺,全都早日拿认证。okk言归正传,这篇文章将带大家走进链式编程的世界,这也是 jQuery …

jsfiddle 使用教程

最近有许多的Css 3 demo,因此为了方便查阅,就将demo部分放在 jsfiddle ,方便日后翻阅。 这是 JSFIDDLE 的官网文档,都是英文,不过对照看还是可以的:官方文档 HTML区域: 它的HTML区域已经包含 ht…

Jfinal 框架 在Html页面使用 #if(调用java方法) #end

欢迎转发分享, 转发请附上本文地址: https://blog.csdn.net/Luoxianxun/article/details/106399780 一、实现需求 实现在html 中使用 #if(调用java类中的方法) #end; 二、使用技术 JFinal后台框架 JFinal 官方文档:https://jfi…

java文本框代码_Java Swing JTextField文本框的代码示例

1. 概述 官方JavaDocsApi: javax.swing.JTextField JTextField,文本框。JTextField 用来编辑单行的文本。 JTextField 常用构造方法: /* * 参数说明: * text: 默认显示的文本 * columns: 用来计算首选宽度的列数;如果列设置为 0,则首选宽度将…

java的StringBuilder、Stringjoiner

一、StringBuilder StringBuilder可以看成是一个容器,创建之后里面的内容是可变的。作用是提高字符串的操作效率。 注意:使用String创建字符串对象时,是不能改变字符串的内容的,例如: String s1 "aaa"; St…

swing的JTextField的介绍及其使用方法

:JTextField的(文本框)使用: JTextField 是一个轻量级组件,它允许编辑单行文本。 1.JTextField的常用构造方法: JTextField() 构造一个新的 TextField。 JTextField(int columns) 构造一个具有指定列数的新的空 TextField。 JTextField(String text) 构造一个用…

十字链表简介与实现(Java)

十字链表简介与实现(Java) 结构实现 结构 十字链表存储有向图(网)的方式与邻接表有一些相同,都以图(网)中各顶点为首元节点建立多条链表,同时为了便于管理,还将所有链表…

Java输出一个*号十字架

总共9行 每一行4个空格除了第五行不要空格 每一行1个*除了第五行需要9个* 利用for的循环嵌套方法,用三个for 从上往下 第一个for代表行数,第二个for代表空格数,第三个for代表输出的*数 做法如下:

Java 写一个简单的"十字"

如何用代码写出十字? 首先创建一个新的Package,如图: 取一个com.➕名字缩写和日期,下一行写public class 类名,后面加上一个{ },在它的中间写上public static void main(String[] args){, 如图&#xff1a…

JTextField的部分常用使用方法

本篇文章将会教会大家如何使用JTextField输入框 1.创建JTextField和添加 //创建输入框 JTextField jTextField new JTextField(); //将标签添加到面板里 jPanel.add(jTextField);2设置JTextField大小坐标 //设置输入框大小 jTextField.setSize(300,100); //设置输入框坐标…

Exists 用法解释

exists的实例解析 现有两个表 a: b: 现有sql语句如下 select * from a where exists (select 1 from b where b.b_id a.id); 执行结果如下: 含义解析:exists 的意思是用于检查子查询是否至少会返回一行数据,该子查询实际上并不…

MySQL中的EXISTS用法

EXISTS 语法: SELECT 字段 FROM table WHERE EXISTS (subquery); 参数: subquery是一个受限的SELECT语句(不允许有COMPUTE子句和INTO关键字) 示例: SELECT * FROM A WHERE EXISTS (SELECT 1 FROM B WHERE B.id …

EXISTS用法

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False 方法/ 1 EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False EXISTS 指定一…

hivesql中 exists 用法

有一次面试的时候,面试官问了这么一个场景题:一家门店一个月内每位顾客访问的目的可能有多种,并给到访顾客的目的打标签1、2、3、4这四类,现在要统计这家门店一个月内没有3、4标签的顾客明细。(也就是顾客到访标签只有…

mysql中not exists用法_not exists用法

not exists是sql中的一个语法,常用在子查询和主查询之间,用于条件判断,根据一个条件返回一个布尔值,从而来确定下一步操作如何进行,not exists也是exists或in的对立面。 not exists 是exists的对立面,所以要了解not exists的用法,我们首先了解下exists、in的区别和特点:…

Hive exists 用法

where exists(select c2/1/*/key2 from tb2 where tb2.key2 = tb1.key1) exists()中的select后面跟其他字段也行,where后面用关联字段即可! selec * : in :

SQL中EXISTS的用法

比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID) 这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和Compan…

在Android手机上使用MACE实现图像分类

前言 在之前笔者有介绍过《在Android设备上使用PaddleMobile实现图像分类》,使用的框架是百度开源的PaddleMobile。在本章中,笔者将会介绍使用小米的开源手机深度学习框架MACE来实现在Android手机实现图像分类。 MACE的GitHub地址:https://…

Ubuntu 16.04 下编译小米mace源码依赖库,跑在android板子上

https://blog.csdn.net/qq_27063119/article/details/81015227 以上链接是编译mace源码的基础步骤,下面我叙述一下本人编译所踩过的坑 1、编译过程中所需要的依赖必须全部安装,就算你一开始并没有用到的依赖,到后面还是会用到,还…