酷站(www.ku0.com)-致力于为互联网从业者提供专业的网络资源资讯

热门关键词:  企业  as  baidu  c4rp3nt3r  美女

Java基础入门Swing中间容器的使用介绍

来源:互联网 作者:秩名 人气: 发布时间:2021-12-05
本篇文章主要介绍了Java基础入门Swing中间容器的使用介绍,对大家的学习或者工作具有一定的参考学习价值,感兴趣的小伙伴们可以参考一下,也感谢大家对酷站(ku0.com)的支持。

Java基础入门 Swing中间容器

在Swing中不仅有JFrame、JDialog这样的顶级窗口,还拥有一些中间容器,这些容器不能单独存在,必须依存在顶级窗口中。最常见的是JPanel、JScrollPane。

  • JPanel:JPanel和AWT中的Panel组件使用方法基本一致,他是一个无边框不能被放大、移动、关闭的面板,它的默认布局管理器是FlowLayout,当然这是可以使用setLayout()方法重新设置的
  • JScrollPane:与JPanel不同的是,JScrollPane是一个带有滚动条的面板容器而且这个面板只能添加一个组件,如果想添加多个组件就必须先把多个组件添加到Panel中再将Panel添加到JScroollPane中

下面举例说明一下JScrollPane的方法

JScrollPane的构造方法及方法

方法声明 功能描述
JScrollPane() 创建一个空的JScrollPane面板
JScrollPane(Component view) 创建一个显示指定组件的JScrollPane面板,只要组件大小超过面板大小就会出现水平和垂直滚动条
JScrollPane(Component view,int vsbPolicy,int hsbPoliy) 创建一个显示指定容器的JScrollPane面板

 

import java.awt.*;
import javax.swing.*; 
public class Main extends JFrame{
    public Main(){
        this.setTitle("PanelDemo");
        JScrollPane scrollPane=new JScrollPane();
        //设置水平进度条需要时出现
        scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        //设置垂直进度条一直出现
        scrollPane.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"));
        for(int i=5;i<100;i++){
            panel.add(new JButton("按钮"+i));
        }
        
        //将JPanel面板添加在滚动面板上显示
        scrollPane.setViewportView(panel);
        //将滚动面板添加到窗体的中部(CENTER)
        this.add(scrollPane,BorderLayout.CENTER);
        
        //创建窗体可关闭按钮
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(400,250);
        this.setVisible(true);
    }
    public static void main(String[] args)throws Exception{
       new Main();
    }

Java Swing顶层容器类 

Swing拥有三个常用的顶层容器类

  • JFrame
  • JDialog
  • JApplet 

1,任何画面类,必须是容器类的分支,任何界面树的顶层容器类必须是上面三个中的一个。

2,任何画面组件只能被容器类引用一次,如果复制他们到另外的容器类,它会被从第一个容器类中删除然后放在第二个容器类中。

3,顶层容器类都含有一个内容面板,包含了顶层容器要显示的内容

4,顶层容器类通常含有一个Menu Bar, 这个Menu Bar可以带来更好的使用体验,比如在Mac系统中,Menu bar会显示在screen顶上而不是app顶上。

注意,JPanel默认的排版方式是FlowLayout

但是可以使用顶层容器类的setContentPanel替换成自定义布局的JPanel类。

示例代码:

package com.jesse.kotlin.com.jesse.gui 
import java.awt.BorderLayout
import java.awt.Dimension
import javax.swing.*
 
class WindowMain { 
    private val rootContainer = JFrame("GUI Demo") 
    fun buildGui(){
        rootContainer.defaultCloseOperation = JFrame.EXIT_ON_CLOSE
        var label = JLabel("Hello world")
        rootContainer.contentPane.add(label, BorderLayout.CENTER)
        rootContainer.preferredSize = Dimension(400, 300)
 
        var menuPanel:JMenuBar = JMenuBar()
        menuPanel.add(JMenu("help"))
        rootContainer.jMenuBar = menuPanel
 
        rootContainer.pack()
        rootContainer.isVisible = true
    }

fun main(args: Array<String>) {
    SwingUtilities.invokeLater {
        WindowMain().buildGui()
    }
}

版权声明:本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 959677720#qq.cn(#换@) 举报,一经查实,本站将立刻删除。
原文链接:https://blog.csdn.net/qq_40788630/article/details/82383673

相关文章

  • Java递归实现迷宫游戏的代码

    Java递归实现迷宫游戏的代码

    1.问题由来 迷宫实验是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一......
    12-15
  • Java基础入门Swing中间容器的使用介绍

    Java基础入门Swing中间容器的使用介绍

    Java基础入门 Swing中间容器 在Swing中不仅有JFrame、JDialog这样的顶级窗口,还拥有一些中间容器,这些容器不能单独存在,必须依存在顶级窗口中。最常见的是JPanel、JScrol......
    12-05
  • Spring Boot配置内容加密实现敏感信息保护的介绍

    Spring Boot配置内容加密实现敏感信息保护的介绍

    在之前的系列教程中,我们已经介绍了非常多关于Spring Boot配置文件中的各种细节用法,比如:参数间的引用、随机数的应用、命令行参数的使用、多环境的配置管理等等......
    11-26
  • Java NIO实现群聊系统的介绍

    Java NIO实现群聊系统的介绍

    前面的文章介绍了NIO的三大核心组件并编写了BIO的一个demo实例,本文使用NIO写一个小应用实例,巩固并加深对NIO的理解。 实例要求: 1)编写一个 NIO 群聊系统,实现服务......
    11-24
  • java基于NIO实现群聊模式的介绍

    java基于NIO实现群聊模式的介绍

    Client package com.qst.chat; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.So......
    11-23
  • SpringBoot log打印及输出方式的介绍

    SpringBoot log打印及输出方式的介绍

    SpringBoot log打印及输出 导入jar包 import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; 代码示例 private final Log log = LogFactory.getLog(AppController.class); //AppController.......
    11-21
  • 基于springboot实现一个简单的aop的方法

    基于springboot实现一个简单的aop的方法

    AOP(Aspect-Oriented Programming:面向切面编程) aop能将一些繁琐、重复、无关业务的逻辑封装起来,在一个地方进行统一处理,常用于日志记录、事务管理、权限控制等,aop能在......
    11-13
  • Java多线程的实现方法

    Java多线程的实现方法

    什么是进程? 电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如下图中的QQ、酷狗播放器、电脑管家等等。 什么是线......
    11-08
  • Java并行执行任务的几种方案介绍

    Java并行执行任务的几种方案介绍

    背景 最近在排查生产环境问题,发现商品详情接口时不时会报RPC调用超时,检查代码发现接口里面查询活动耗时比较长,都是串行执行的,仔细查看发现完全可以改成并......
    11-05
  • java实现随机验证码图片生成的方法

    java实现随机验证码图片生成的方法

    1.controller /** * 获取随机数验证码图片 * * @param request HttpServletRequest * @param response HttpServletResponse */ @GetMapping(value = /getRandomCode ,produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) pub......
    11-05