package hello;

import javax.swing.*;

import javax.swing.event.*;

import java.awt.event.*;

import java.awt.*;

/**

* swing基础实例

* @author HZ20232

*

*/

public class Hello{

public static void main(String args[])throws Exception{

NewFrame frame1 = new NewFrame();

frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//一定要设置关闭

frame1.setVisible(true);

}

}

class NewFrame extends JFrame{

private JLabel label1;

private JButton button1;

private JTextField text1;

private JComboBox box;

private JMenuBar menuBar;

private JSlider slider;

private JSpinner spinner;

private JToolBar toolBar;

public NewFrame(){

super();

this.setSize(300,500);

this.getContentPane().setLayout(null);//设置布局控制器

//        this.getContentPane().setLayout(new FlowLayout());//设置布局控制器

//        this.getContentPane().setLayout(new GridLayout(1,2));//设置布局控制器,需要给出设定的行列数目

//        this.getContentPane().setLayout(new BorderLayout());//设置布局控制器,以North,South,West,East,来控制控件布局

//        this.getContentPane().setLayout(new GridBagLayout());//设置布局控制器

this.add(this.getTextField(),null);//添加文本框

this.add(this.getButton(),null);//添加按钮

this.add(this.getLabel(),null);//添加标签

this.add(this.getBox(),null);//添加下拉列表框

this.setJMenuBar(this.getMenu());//添加菜单

this.add(this.getSlider(),null);

this.add(this.getSpinner(),null);

this.add(this.getToolBar(),null);

this.setTitle("Hello World!");//设置窗口标题

}

private JToolBar getToolBar(){

if(toolBar==null){

toolBar = new JToolBar();

toolBar.setBounds(103,260,71,20);

toolBar.setFloatable(true);

}

return toolBar;

}

private JSpinner getSpinner(){

if(spinner==null){

spinner = new JSpinner();

spinner.setBounds(103,220, 80,20);

spinner.setValue(100);

}

return spinner;

}

private JSlider getSlider(){

if(slider==null){

slider = new JSlider();

slider.setBounds(103,200,100, 20);

slider.setMaximum(100);

slider.setMinimum(0);

slider.setOrientation(0);

slider.setValue(0);

}

return slider;

}

/**

* 菜单的级别JMenuBar->JMenu->JMenuItem

* 三级都是1:n的关系

* 最后添加菜单用的SetJMenuBar方法

* @return 建立好的菜单

*/

private JMenuBar getMenu(){

if(menuBar==null){

menuBar = new JMenuBar();

JMenu m1 = new JMenu();

m1.setText("文件");

JMenu m2 = new JMenu();

m2.setText("编辑");

JMenu m3 = new JMenu();

m3.setText("帮助");

JMenuItem item11 = new JMenuItem();

item11.setText("打开");

JMenuItem item12 = new JMenuItem();

item12.setText("保存");

JMenuItem item13 = new JMenuItem();

item13.setText("退出");

JMenuItem item21 = new JMenuItem();

item21.setText("复制");

JMenuItem item22 = new JMenuItem();

item22.setText("拷贝");

JMenuItem item23 = new JMenuItem();

item23.setText("剪切");

JMenuItem item31 = new JMenuItem();

item31.setText("欢迎");

JMenuItem item32 = new JMenuItem();

item32.setText("搜索");

JMenuItem item33 = new JMenuItem();

item33.setText("版本信息");

m1.add(item11);

m1.add(item12);

m1.add(item13);

m2.add(item21);

m2.add(item22);

m2.add(item23);

m3.add(item31);

m3.add(item32);

m3.add(item33);

menuBar.add(m1);

menuBar.add(m2);

menuBar.add(m3);

}

return menuBar;

}

/**

* 设置下拉列表框

* @return

*/

private JComboBox getBox(){

if(box==null){

box = new JComboBox();

box.setBounds(103,140,71,27);

box.addItem("1");

box.addItem("2");

box.addActionListener(new comboxListener());//为下拉列表框添加监听器类

}

return box;

}

private class comboxListener implements ActionListener{

public void actionPerformed(ActionEvent e){

Object o = e.getSource();

System.out.println(o.toString());

}

}

/**

* 设置标签

* @return 设置好的标签

*/

private JLabel getLabel(){

if(label1==null){

label1 = new JLabel();

label1.setBounds(34,49,53,18);

label1.setText("Name");

label1.setToolTipText("JLabel");

}

return label1;

}

/**

* 设置按钮

* @return 设置好的按钮

*/

private JButton getButton(){

if(button1==null){

button1 = new JButton();

button1.setBounds(103,110,71,27);

button1.setText("OK");

button1.setToolTipText("OK");

button1.addActionListener(new HelloButton());//添加监听器类,其主要的响应都由监听器类的方法实现

}

return button1;

}

/**

* 监听器类实现ActionListener接口,主要实现actionPerformed方法

* @author HZ20232

*

*/

private class HelloButton implements ActionListener{

public void actionPerformed(ActionEvent e){

System.out.println("Hello world!");

}

}

/**

* 设定文本域

* @return

*/

private JTextField getTextField(){

if(text1==null){

text1 = new JTextField();

text1.setBounds(96,49,160,20);

}

return text1;

}

}

jbutton可以设置id吗_Java Swing简单控件实例(JButton,JLabel,JMenuBar,JComboBo)相关推荐

  1. jbutton可以设置id吗_Java JButton.setHorizontalTextPosition方法代碼示例

    本文整理匯總了Java中javax.swing.JButton.setHorizontalTextPosition方法的典型用法代碼示例.如果您正苦於以下問題:Java JButton.setHori ...

  2. java 日历控件_java swing 日历控件怎么实现 最好是源码

    展开全部 源代码: e69da5e887aa3231313335323631343130323136353331333330363864//DatePicker.java package com.kx ...

  3. ASP.NET Atlas简单控件介绍——Sys.Component基类与Sys.UI.Control基类

    作者:Dflying Chen (http://dflying.cnblogs.com/) 本系列有三篇文章: ASP.NET Atlas简单控件介绍--Sys.Component基类与Sys.UI. ...

  4. Webform(简单控件、复合控件)

    一.简单控件: 1.label控件 <asp:Label ID="Label1" runat="server" Text="账 号:" ...

  5. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第三章:简单控件

    第 3 章 简单控件 本章介绍了App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图.容纳视图的常用布局.响应点击的按钮控件.显示图片的图像视图等.然后结合本章所学的知识,演示了一个实战项 ...

  6. 安卓开发学习笔记1:简单控件

    此文章仅为本人在学习安卓开发时的一些笔记 界面显示逻辑处理 使用XML标记.描绘应用界面,使用Java书写程序逻辑 使用XML描述APP界面 使用XML文件描述APP界面 一个界面布局可以被多处代码复 ...

  7. ASP.NET Atlas简单控件介绍——InputControl,TextBox,Button和CheckBox

    作者:Dflying Chen (http://dflying.cnblogs.com/) 注:本系列文章比较基础,基本为Atlas官方文档的翻译,熟悉Atlas的朋友可以跳过. 本系列有三篇文章: ...

  8. silverlight体验之三:简单控件堆成个Login

    silverlight体验之三:简单控件堆成个Login 快过年了,回家心情急切呀.今天,明天,后天一上午.就可以回家啦,高兴,再记点小东西吧. 好像web项目都是从登陆开始的吧,这个也一样. 1. ...

  9. QT上设置背景图不影响子控件以及按钮控件的透明化

    QT中设置背景图不影响子控件 QT中设置背景图的方法不少,我这里是直接使用stylesheet来设置背景图.如果直接在UI界面进行如下所示设置 border-image: url(:/resource ...

最新文章

  1. puppet最新源码包安装学习笔记
  2. 轨迹系列8——记某真实项目中轨迹展示查询效率优化方案一(初步设计)
  3. 用 Python 快速实现 HTTP 和 FTP 服务器
  4. linux 生成随机数命令
  5. Weak Pair HDU - 5877 树状数组+离散化+DFS遍历
  6. 日志级别动态调整——小工具解决大问题
  7. Mysql优化之索引优化
  8. mysql 比较一个字符串_比较MySQL中的两个字符串?
  9. Hibernate获取数据方式与缓存使用
  10. ionic 支持float吗_oppok7x怎么样值得买吗 oppok7x介绍
  11. 云平台圈地须群攻莫单打
  12. scala Basic 第三课
  13. 转:程序员这口饭-职业规划解决方案
  14. 如何在word中批量编辑所有图片的大小?
  15. SpringBoot项目深度优化和Jvm调优
  16. JOB DESCRIPTION
  17. 互动3D网站已触手可及
  18. Endnote 基本使用教程
  19. 802.1Q封装的VLAN数据帧格式
  20. SV 接口(interface)

热门文章

  1. HttpClient连接池抛出大量ConnectionPoolTimeoutException: Timeout waiting for connection异常排查
  2. 解决ActiveX Control异常:“没有注册类(异常来自 HRESULT:0x80040154(REGDB_E_CLASSNOTREG))“
  3. Bad owner or permissions on .ssh/config win10问题解决
  4. IDEA设置生成带注释的getter和setter解决方案 (图文教程)
  5. 我可以在CSS中使用onclick效果吗?
  6. html怎么设置顶部布局,html – CSS位置:固定没有顶部给出意想不到的布局?
  7. win11beta渠道升级的如何改为正式版 Windows11beta版升级正式版的步骤方法
  8. 统一返回码,返回结果实体类
  9. 非模态对话框的创建于销毁
  10. c语言枚举如何当函数返回值,C语言学习五 — 数组与枚举