java使用教程——组件及事件处理——常用组件与布局

常用组件
1.JTextField(文本框)
允许用户在文本框中输入单行文本
2.JTextArea(文本区)
允许用户文本区中输入多行文本
3.JLabel(标签)
标签为用户提供信息
4.JButton(按钮)
允许用户单击按钮
5.JCheckBox(复选框)
为用户提供多种选择
6.JComboBox(下拉列表)
为用户提供单项选择
7.JPasswordField密码框)
允许用户在密码中输入单行密码

public class Example_3 {public static void main(String args[]){ComponentInWindow win =new ComponentInWindow();//创建一个对象win.setBounds(100,100,450,260);//设置窗口的初始位置win.setTitle("常用组件");//设置窗口的名字}}

import java.awt.FlowLayout;import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JRadioButton;public class ComponentInWindow extends JFrame{//四个组件JCheckBox checkBox1,checkBox2;//复选框  喜欢音乐和喜欢旅行JRadioButton radioM,radioF;//单选按钮  男女ButtonGroup group;//单选按钮建立一个小组 男女JComboBox<String> comBox;//下拉列表public ComponentInWindow()//构造函数{init();setVisible(true);//窗口可见setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击×号后的反应  关闭}void init(){setLayout(new FlowLayout());//流体布局comBox = new JComboBox<String>();下拉列表comBox.addItem("音乐天地");comBox.addItem("武术天地");checkBox1 = new JCheckBox("喜欢音乐");//复选框  喜欢音乐和喜欢旅行checkBox2 = new JCheckBox("喜欢旅行");this.add(checkBox1);this.add(checkBox2);//把复选框添加到窗口中去group = new ButtonGroup();//单选按钮  男女radioM = new JRadioButton("男");radioF = new JRadioButton("女");group.add(radioM);group.add(radioF);this.add(radioM);this.add(radioF);//把单选按钮添加到窗口中去this.add(comBox);}
}

在这里插入图片描述

密码框:
Java中使用JPasswordField是很常见的,怎么获取其文本内容呢?

查看Java API发现有个getPassword()方法,但使用这个方法得到的
却不是我们所输入的内容,可以通过以下方法获取密码框中的内容:

JPasswordField passwordField=new JPasswordField();

String password=new String(passwordField.getPassword());


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Text extends JFrame implements ActionListener
{JLabel lb=new JLabel("请输入密码:");///设置一个标签对象JPasswordField txt1=new JPasswordField(25);///创建密码框对象JButton bn=new JButton("确定");///添加按钮JTextField txt2=new JTextField(25);///创建一个文本框public Text() {setSize(300,200);setVisible(true);//可见setTitle("密码验证");setDefaultCloseOperation(EXIT_ON_CLOSE);setLayout(new FlowLayout());add(lb);add(txt1);txt1.setEchoChar('*');///密码框中的字符加密,以'*'形式显示add(bn);add(txt2);validate();bn.addActionListener(this);//为按钮添加注册监视器}public void actionPerformed(ActionEvent e) {String password=new String(txt1.getPassword());if(password.equals("abc"))///比较字符串相等txt2.setText("密码正确");else {txt2.setText("密码错误");}   }public static void main(String[] args) {new  Text();}}

密码:abc
在这里插入图片描述

常用容器:(中间容器)
1.JPanel(面板)
2.JTabbedPane(选项卡窗格)
3.JScrollPane(滚动窗格)
4.JSplitPane(拆分窗格)
5.JLayerPane(分层窗格)

常用布局:
1.FlowLayout布局(流式布局)
2.BorderLayout布局(边界布局)
3.CardLayout布局(卡片布局)
4.GridLayout布局(网格布局)
5.null布局(空布局)
6.BoxLayout布局(盒式布局)

public class Example9_4 {public static void main(String args[]) {new ShowLayout();}}
import java.awt.*;
import javax.swing.*;
public class ShowLayout extends JFrame {PanelGridLayout pannelGrid; //网格布局的面板PanelNullLayout panelNull ; //空布局的面板JTabbedPane p;              //选项卡窗格ShowLayout() {pannelGrid = new PanelGridLayout();panelNull  = new PanelNullLayout();p = new JTabbedPane();p.add("网格布局的面板",pannelGrid);p.add("空布局的面板",panelNull);add(p,BorderLayout.CENTER);add(new JButton("窗体是BorderLayout布局"),BorderLayout.NORTH);add(new JButton("南"),BorderLayout.SOUTH);add(new JButton("西"),BorderLayout.WEST);add(new JButton("东"),BorderLayout.EAST);setBounds(10,10,570,390);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);validate();}}
import java.awt.*;
import javax.swing.*;
public class PanelGridLayout extends JPanel {PanelGridLayout () {GridLayout grid=new GridLayout(12,12);  //网格布局setLayout(grid);Label label[][]=new Label[12][12];for(int i=0;i<12;i++) {for(int j=0;j<12;j++) {label[i][j]=new Label();if((i+j)%2==0)label[i][j].setBackground(Color.black);elselabel[i][j].setBackground(Color.white);add(label[i][j]); }}}
}
import javax.swing.*;
public class PanelNullLayout extends JPanel {JButton button;JTextField text;PanelNullLayout() {setLayout(null);  //空布局button = new JButton("确定");text = new JTextField();add(text);add(button);text.setBounds(100,30,90,30);button.setBounds(190,30,66,30);}}

在这里插入图片描述
在这里插入图片描述
有两个列型盒式容器BoxVOne BoxVTwo和一个行型式容器BoxH
将BoxVOne,BoxVTwo添加到BoxH中,并在它们之间添加水平支撑

public class Example9_5 {public static void main(String args[]) {WindowBoxLayout win=new WindowBoxLayout();win.setBounds(100,100,310,260);win.setTitle("嵌套盒式布局容器");}}

import javax.swing.*;
public class WindowBoxLayout extends JFrame  {Box boxH;               //行式盒Box boxVOne,boxVTwo;    //列式盒 public WindowBoxLayout() {setLayout(new java.awt.FlowLayout());init();setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}void init() {boxH =Box.createHorizontalBox();boxVOne=Box.createVerticalBox();boxVTwo=Box.createVerticalBox();boxVOne.add(new JLabel("姓名:"));boxVOne.add(new JLabel("职业:"));boxVTwo.add(new JTextField(10));boxVTwo.add(new JTextField(10));boxH.add(boxVOne);boxH.add(Box.createHorizontalStrut(10));boxH.add(boxVTwo);add(boxH);       }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库大战,AWS又将目标瞄准了微软SQL Server

喜欢就关注我们吧&#xff01;文|白开水AWS 宣布了一种新的数据库产品 — 用于 Aurora PostgreSQL 的 Babelfish。该产品旨在效仿 Microsoft 的 SQL Server&#xff0c;并吸引 SQL Server 用户迁移到 AWS 云平台。图片来源&#xff1a;techcrunchAWS 首席执行官 Andy Jassy 在 …

惊!Kubernetes 将弃用 Docker,开发者们怎么办?

喜欢就关注我们吧&#xff01;文|大东BE近日&#xff0c;Kubernetes 官方发布公告&#xff0c;宣布自 v1.20 起放弃对 Docker 的支持&#xff0c;届时用户将收到 Docker 弃用警告&#xff0c;并需要改用其他容器运行时。但 Docker 作为容器镜像构建工具的作用将不受影响&#x…

sql计算留存_SQL基础第七讲:关于用户留存率的计算

最近&#xff0c;好几个小伙伴都拿着关于用户留存的面试题来问我&#xff0c;所以今天单独开一篇文章讲一下留存问题。首先看一下留存是什么&#xff0c;简单来说&#xff0c;我和你今天在一家超市购物了&#xff0c;明天我来购物了&#xff0c;你没来&#xff0c;那么我就是这…

java实用教程——组件及事件处理——ActionEvent事件

事件源&#xff1a; 文本框&#xff0c;按钮&#xff0c;菜单项&#xff0c;密码框&#xff0c;单选按钮 注册监视器&#xff1a; 能够触发ActionEvent事件的组件使用方法 addActionListener(ActionListener listener) 处理事件接口&#xff1a; ActionListener接口中只有一个方…

【Azure Show】|第七期 特别版线上沙龙直播回顾. 嘉宾张坤段清华谭国欣柯克黄炜锵...

我是MVP 继与广州图书馆合作推出【搭上AI快车】在线公益课堂和大家分享了基于移动应用的人工智能开发经验后&#xff0c;本期继续与广州图书馆合作&#xff0c;邀请更多的微软技术专家&#xff0c;推出我们Azure Show节目的特别版&#xff0c;为大家带来各IT技术领域的经验分享…

java实用教程——组件及事件处理——ItemEvent事件(设置字体类型)

ItemEvent事件源&#xff1a; 选择框&#xff0c;下拉列表都可以触发ItemEvent事件 注册监视器&#xff1a; 能够触发ItemEvent事件的组件使用addItemListener(ItemListener listen) 将实现ItemListener的接口的类的实例注册为事件源的监视器 ItemListener接口&#xff1a; 接口…

理解 redis 中的 哈希对象类型

redis中的hash也是我们使用中的高频数据结构&#xff0c;它的构造基本上和编程语言中的HashTable&#xff0c;Dictionary大同小异&#xff0c;如果大家往后有什么逻辑需要用Dictionary存放的话&#xff0c;可以根据场景优先考虑下redis哦&#xff0c;起码可以装装嘛&#xff0c…

java实用教程——组件及事件处理——DocumentEvent事件

DocumentEvent事件源&#xff1a; 文本区Document的维护 注册监视器&#xff1a; 使用addDocumentListener(DocumentListener listen)为事件源添加监视器 DocumentListener接口&#xff1a; 接口中有三个方法&#xff1a; public void changUpdate(DocumentEvent e); public vo…

prometheus-net.DotNetRuntime 获取 CLR 指标原理解析

prometheus-net.DotNetRuntime 介绍Intro前面集成 Prometheus 的文章中简单提到过&#xff0c;prometheus-net.DotNetRuntime 可以获取到一些 CLR 的数据&#xff0c;比如说 GC, ThreadPool, Contention, JIT 等指标&#xff0c;而这些指标可以很大程度上帮助我们解决很多问题&…

错误代码1500什么意思_啊早安打工人是什么梗???

早安打工人是什么梗&#xff1f;最近打工人这个词成为了大家口中最为常见的一个词语&#xff0c;打工人的爆火也引起了很多人的关注&#xff0c;这样一个词语在很多人看来很有可能还有点嘲讽的含义&#xff0c;却突然火遍全网&#xff0c;究竟打工人是什么梗&#xff1f;看起来…

java实用教程——组件及事件处理——MouseEvent事件

MouseEvent事件 任何组件上都可以发生鼠标事件&#xff0c;如鼠标进入组件、退出组件、在组件上方单击鼠标、拖动鼠标等都触发鼠标事件&#xff0c;即导致MouseEvent类自动创建一个 事件对象&#xff0c;事件源注册监视器的方法是addMouseListener(MouseListener listener); …

这个世界,正在悄悄惩罚那些不注意身体的人

这是头哥侃码的第226篇原创上周四&#xff0c;整个网络被 “马拉多纳去世” 的消息刷屏了。虽然我从不看足球&#xff0c;而且没有看过马拉多纳踢球&#xff0c;但关于他的故事、他的传奇、他的丰功伟绩&#xff0c;倒是听过不少。所以在听到这个消息的时候&#xff0c;我感到深…

tcp拥塞控制_网络TCP的拥塞控制算法简介

作为网络中使用最广泛的传输协议&#xff0c;TCP的拥塞控制机制是学术界和工业界关注的焦点问题之。然而&#xff0c;目前广泛使用的TCP传输协议的拥塞控制算法仍然使用相对固定的窗口调节策略&#xff0c;无法根据动态变化的场景自适应地调整参数&#xff0c;从而造成不可避免…

java实用教程——组件及事件处理——对话框(消息对话框,输入对话框,确认对话框)

消息对话框&#xff1a;(这个对话框提供一些信息) 无模式&#xff1a;可多线程的执行 有模式&#xff1a;用户必须处理这个一个对话框。必须解决这个问题后才可以继续相处下去 对话框分为无模式和有模式两种。如果一个对话框 是有模式的对话框&#xff0c;那么当这个对话框处于…

11张图演进SeviceMesh服务网格

本周和大家聊聊架构进化史-大家可文末扫码加入随着互联网持续高歌猛进&#xff0c;相关技术名词也是层出不穷&#xff0c;ServiceMesh服务网格这两年尤为火爆&#xff0c;然而很少有讲清楚的文章。笔者这里用心整理了一篇文章&#xff0c;用11张图演绎ServiceMesh的进化历程&am…

java实用教程——组件及事件处理——对话框(颜色对话框,自定义对话框)

颜色对话框&#xff1a; 可以用javax.swing包中的JColorChooser类的静态方法 public staticColorshowDialog (Component component, String title, Color initialColor) 创建一个有模式的颜色对话框&#xff0c;其中参数component指定颜色对话框可见时的位置&#xff0c;颜色对…

.NET Core/.NET 5.0 析构函数依然有效?

【导读】最近看到小伙伴在.NET Core中用到了析构函数&#xff0c;不禁打一疑问&#xff0c;大部分情况下&#xff0c;即使在.NET Framework中都不会怎么用到析构函数&#xff0c;我想在.NET Core中是否还依然有效呢&#xff1f;随着时间推移&#xff0c;迭代版本更新&#xff0…

java实用教程——常用实用类——String类(字符串类)

JAVA把String类定义为final类(因此用户不能扩展String类&#xff0c;即String类不可以有子类) String对象可以用""进行并置运算 identityHashCode会返回对象的hashCode&#xff0c;而不管对象是否重写了hashCode方法。 public class Example8_1 {public static void…

sqlserver 事务日志 异常增长原因排查_小白入门学习打日志

前言只有光头才能变强。文本已收录至我的GitHub仓库&#xff0c;欢迎Star&#xff1a;https://github.com/ZhongFuCheng3y/3y记得之前写过一篇&#xff1a;《阿里巴巴 Java开发手册》读后感&#xff0c;之前自学时由于没怎么接触过打“日志”&#xff0c;所以《手册》中的“日志…

在 k8s 中部署 Prometheus 和 Grafana

部署 Prometheus 和 Grafana 到 k8sIntro上次我们主要分享了 asp.net core 集成 prometheus&#xff0c;以及简单的 prometheus 使用&#xff0c;在实际在 k8s 中部署的时候就不能在使用前面讲的静态配置的方式来部署了&#xff0c;需要使用 Prometheus 的服务发现。部署规划Pr…