虽然GUI技术没有很大的市场,甚至很多初学者放弃学习GUI,但是学习GUI编程的过程对于提高编程兴趣,深入理解Java编程有很大的作用。效果图如下,加油吧!!

1.复选框和单选框按钮组

—在框架窗口中加入复选框和单选框按钮组

import javax.swing.*;
public class App extends JFrame{
    static JFrame jFrame=new JFrame("复选框和单选组按钮选取框");
    static JCheckBox jCheckBox1=new JCheckBox("粗体",true);
    static JCheckBox jCheckBox2=new JCheckBox("斜体");
    static JCheckBox jCheckBox3=new JCheckBox("下划线");
    static JRadioButton jRadioButton1=new JRadioButton("红色",true);
    static JRadioButton jRadioButton2=new JRadioButton("绿色",true);
    static JRadioButton jRadioButton3=new JRadioButton("蓝色");
    public static void main(String[] args) {
        ButtonGroup buttonGroup=new ButtonGroup();
        jFrame.setLocation(200,150);
        jFrame.setSize(300,220);
        jFrame.setLayout(null);
        jCheckBox1.setBounds(20,20,50,20);
        jCheckBox2.setBounds(20,40,50,20);
        jCheckBox3.setBounds(20,60,70,20);
        jRadioButton1.setBounds(40,100,50,20);
        jRadioButton2.setBounds(40,120,50,20);
        jRadioButton3.setBounds(40,140,50,20);
        jFrame.add(jCheckBox1);
        jFrame.add(jCheckBox2);
        jFrame.add(jCheckBox3);
        buttonGroup.add(jRadioButton1);
        buttonGroup.add(jRadioButton2);
        buttonGroup.add(jRadioButton3);
        jFrame.add(jRadioButton1);
        jFrame.add(jRadioButton2);
        jFrame.add(jRadioButton3);
        jFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        jFrame.setVisible(true);
    }
}

2.文本编辑组件和滚动窗格

—设置文本编辑组件和滚动窗格

import javax.swing.*;
public class App extends JFrame{
    JTextField jTextField=new JTextField("该文本框不可编辑",30);
    static JPasswordField jPasswordField=new JPasswordField("HelloWorld",30);
    public App(String str){
        super(str);
        jTextField.setBounds(20,40,140,20);
        jTextField.setEditable(false);
        add(jTextField);
    }
    public static void main(String[] args) {
        App jFrame=new App("文本编辑功能窗口");
        JTextArea jTextArea=new JTextArea("你好",10,30);
        JScrollPane jScrollPane=new JScrollPane(jTextArea);
        jFrame.setLocation(200,150);
        jFrame.setSize(240,220);
        jFrame.setLayout(null);
        jScrollPane.setBounds(20,70,160,100);
        jPasswordField.setBounds(20,10,140,10);
        jFrame.add(jPasswordField);
        jFrame.add(jScrollPane);
        char[] passWorld=jPasswordField.getPassword();
        String str=new String(passWorld);
        System.out.println("密码是:" passWorld "转换后" str);
        jFrame.setVisible(true);
        jFrame.setResizable(false);
        jFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}

输出结果:密码是:[C@370736d9转换后HelloWorld

3.多个选项卡设置

—在窗口中放一个选项卡窗格,并在选项卡窗格中加入若干选项卡,每个选项卡中放置一个带图像的标签组件。

import javax.swing.*;
public class App extends JFrame {
    public App(){
        JLabel[] jLabels=new JLabel[6];
        Icon pic;
        String title;
        for(int i=1;i<=5;i  ){
            pic=new ImageIcon("images\\t" i ".png");
            jLabels[i]=new JLabel();
            jLabels[i].setIcon(pic);
            title="第" i "页";
            jTabbedPane.add(title,jLabels[i]);
        }
        this.add(jTabbedPane);
    }
    JTabbedPane jTabbedPane=new JTabbedPane(JTabbedPane.TOP);
    public static void main(String[] args) {
        App jFrame=new App();
        jFrame.setTitle("选项卡的应用");
        jFrame.setSize(300,300);
        jFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
        jFrame.setVisible(true);
    }
}

4.在框架窗口中加入面板

import javax.swing.*;
import javax.swing.border.TitledBorder;
public class App {
    public static void main(String[] args) {
        JFrame jFrame=new JFrame("我的框架");
        jFrame.setSize(210,180);
        jFrame.setLocation(500,400);
        JPanel jPanel=new JPanel();
        jPanel.setSize(120,90);
        jPanel.setLocation(40,30);
        JButton jButton=new JButton("点击我");
        jButton.setSize(80,20);
        jButton.setLocation(20,30);
        jFrame.setLayout(null);
        jPanel.setLayout(null);
        jPanel.add(jButton);
        jPanel.setBorder(new TitledBorder("面板区"));
        jFrame.add(jPanel);
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jFrame.setVisible(true);
    }
}

5.在窗口中加入标签

—在窗口中加入标签,并设置框架的背景色及标签上文字的颜色和字体。

import javax.swing.*;
import java.awt.*;
public class App {
 public static void main(String[] args) {
  JFrame jFrame=new JFrame("标签类窗口");
  JLabel jLabel=new JLabel("我是一个标签",JLabel.CENTER);//创建标签类对象
  jFrame.setLayout(null);//取消默认布局管理器
  jFrame.setSize(300,200);//设置窗口的大小
  Container c=jFrame.getContentPane();//获取内容窗格
  c.setBackground(Color.CYAN);//设置窗口的背景色
  jLabel.setOpaque(true);//设置标签为不透明
  jLabel.setBackground(Color.RED);//设置标签的背景色
  jLabel.setForeground(Color.YELLOW);//设置标签的前景色
  jLabel.setLocation(80,60);
  jLabel.setSize(130,30);
  Font font=new Font("楷体",Font.PLAIN,20);//创建字体对象
  jLabel.setFont(font);//设置标签上的字体
  jFrame.add(jLabel);
  jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  jFrame.setVisible(true);
 }
}

6.框架中加入指定大小的标签

—在框架中加入指定大小的标签,并设置当鼠标悬停在标签上时给出相应的提示信息。

import javax.swing.*;
import java.awt.*;
public class App {
 public static void main(String[] args) {
  JFrame jFrame=new JFrame("标签类窗口");
  JLabel jLabel=new JLabel("我是一个标签",JLabel.CENTER);//创建标签类对象
  jFrame.setLayout(null);//取消默认布局管理器
  jFrame.setSize(300,200);//设置窗口的大小
  Container c=jFrame.getContentPane();//获取内容窗格
  c.setBackground(Color.CYAN);//设置窗口的背景色
  jLabel.setOpaque(true);//设置标签为不透明
  jLabel.setBackground(Color.RED);//设置标签的背景色
  jLabel.setForeground(Color.YELLOW);//设置标签的前景色
  jLabel.setLocation(80,60);
  jLabel.setSize(130,30);
  jLabel.setToolTipText("我被设置为不透明");
  Font font=new Font("楷体",Font.PLAIN,20);//创建字体对象
  jLabel.setFont(font);//设置标签上的字体
  jFrame.add(jLabel);
  jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
  jFrame.setVisible(true);
 }
}

7.在框架窗口中加入按钮

import javax.swing.*;
import java.awt.*;
public class App extends JFrame {
 public static void main(String[] args) {
  App jFrame=new App();
  jFrame.setDefaultCloseOperation(EXIT_ON_CLOSE);
  ImageIcon icon=new ImageIcon("images\\java.png");
  JButton jButton=new JButton();
  jButton.setText("选择");
  jButton.setIcon(icon);
  jFrame.setLayout(null);
  jFrame.setSize(200,180);
  jFrame.setTitle("按钮类窗口");
  jButton.setBounds(50,45,100,40);
  jButton.setToolTipText("我是按钮");
  jFrame.add(jButton);
  jFrame.setVisible(true);
 }
}

8.框架窗口的创建

import javax.swing.*;
import java.awt.*;
public class App {
    static JFrame jFrame = new JFrame("这是一个Swing程序");//创建静态框架并设置标题
    public static void main(String[] args) {
        JLabel label = new JLabel("我是一个标签");//创建一个标签对象
        jFrame.setSize(400, 300);//设置框架的大小
        Image image=(new ImageIcon("images\\java.jpg")).getImage();//创建图标对象
        jFrame.setIconImage(image);//设置窗口的显示图标
        jFrame.setLocationRelativeTo(null);//设置窗口的位置
        jFrame.add(label);//将标签对象加入到窗口中
        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//单击窗口的关闭按钮,结束程序
        jFrame.setVisible(true);//设置窗口可见
    }
}

总结

  • 图形用户界面是应用程序与用户交互的窗口,利用它可以接受用户的输入并向用户输出程序执行的结果。
  • 图形用户界面技术(GUI)是指用图形的方式,借助菜单,按钮等标准界面元素与鼠标操作,帮助用户方便的向计算机系统发出指令,启动操作,并将计算机系统运行的结果以图形的方式显示给用户的技术。
  • Java提供了两个处理图形界面的包:java.awt和javax.swing。其中javax.swing包是java.awt的扩展。
  • Javax.swing包中包含组件类,事件类,接口,布局类,菜单类等,其继承关系如下:

少年没有乌托邦,心向远方自明朗。与风随行皆理想,遗憾最终皆幻想。

到此这篇关于Java有趣好玩的图形界面开发八个案例实现的文章就介绍到这了,更多相关Java图形界面内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Java有趣好玩的图形界面开发八个案例实现的更多相关文章

  1. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  3. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  4. Java实现世界上最快的排序算法Timsort的示例代码

    Timsort 是一个混合、稳定的排序算法,简单来说就是归并排序和二分插入排序算法的混合体,号称世界上最好的排序算法。本文将详解Timsort算法是定义与实现,需要的可以参考一下

  5. Java日期工具类的封装详解

    在日常的开发中,我们难免会对日期格式化,对日期进行计算,对日期进行校验,为了避免重复写这些琐碎的逻辑,我这里封装了一个日期工具类,方便以后使用,直接复制代码到项目中即可使用,需要的可以参考一下

  6. Java设计模式之模板方法模式Template Method Pattern详解

    在我们实际开发中,如果一个方法极其复杂时,如果我们将所有的逻辑写在一个方法中,那维护起来就很困难,要替换某些步骤时都要重新写,这样代码的扩展性就很差,当遇到这种情况就要考虑今天的主角——模板方法模式

  7. Java 中 Class Path 和 Package的使用详解

    这篇文章主要介绍了Java 中 Class Path和Package的使用详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

  8. java SpringBoot 分布式事务的解决方案(JTA+Atomic+多数据源)

    这篇文章主要介绍了java SpringBoot 分布式事务的解决方案(JTA+Atomic+多数据源),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下

  9. Java一维数组和二维数组元素默认初始化值的判断方式

    这篇文章主要介绍了Java一维数组和二维数组元素默认初始化值的判断方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  10. java实现emqx设备上下线监听详解

    这篇文章主要为大家介绍了java实现emqx设备上下线监听详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部