JFrame和JScrollPanel布局初步使用

还不是很了解,做了几个程序;

import java.awt.Container;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;public class pa1
{public static void main(String[] agrs){JFrame frame = new JFrame("JFrame示例");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);EmptyBorder emptyBorder = new EmptyBorder(20, 20, 20, 20);JScrollPane panel1 = new JScrollPane();panel1.setBackground(Color.ORANGE);panel1.setBorder(emptyBorder);frame.getContentPane().add(panel1);frame.setVisible(true);}
}

此程序运行如下,

单有 panel1.setBackground(Color.ORANGE) 这句,没有panel1.setBorder(emptyBorder),看不到背景色的效果,如果 setBorder,则看到的效果如上图;并且 frame.getContentPane().add(panel1) 这样把panel加到frame,panel默认是充满整个frame的;

看一下panel背景色的设置;

import java.awt.Container;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JScrollPane;public class pa2
{public static void main(String[] agrs){JFrame frame = new JFrame("JFrame示例");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);JScrollPane panel1 = new JScrollPane();panel1.getViewport().setBackground(Color.ORANGE);frame.getContentPane().add(panel1);frame.setVisible(true);}
}

panel1.getViewport().setBackground(Color.ORANGE) 这样就设置了背景色,

 

我现在想panel不充满整个frame,留一定空间出来; 

import javax.swing.*;
import java.awt.*;public class pa3
{public static void main(String[] agrs){JFrame frame = new JFrame("JFrame示例3");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);//frame.setLayout(null);JScrollPane panel1 = new JScrollPane();panel1.getViewport().setBackground(Color.ORANGE);panel1.setPreferredSize(new Dimension(200, 150));//frame.getContentPane().add(panel1);frame.add(panel1);//frame.pack(); // 自动根据组件大小调整JFrame的大小frame.setLocationRelativeTo(null); // 居中显示frame.setVisible(true);}
}

还不知道怎么弄,panel总是会充满整个frame;

frame.getContentPane().add(panel1);
frame.add(panel1);

这2句都会把panel加到frame上;

如果加了 frame.pack() 这句,现在定义的panel比frame小,frame会自己变小和panel一样大;

还不知道怎么弄;

看了一下,是还有一个布局管理器的概念,

    如果你想要JPanel占据整个JFrame,你可以使用BorderLayout。默认情况下,JFrame的ContentPane使用BorderLayout作为其布局管理器。如果你想要你的JPanel填充整个JFrame,你可以直接将JPanel添加到JFrame的ContentPane中,并且不需要指定任何布局管理器,因为ContentPane已经使用BorderLayout了。 

有时间继续;

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

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

相关文章

24/06/25(4.1122)数据存储,自定义类型

重点:1.数据类型详细介绍 2.整型在内存中的存储:原码 反码 补码 3.大小端字节序介绍和判断 4.浮点型在内存中的存储解析 前面都有char short int...详细介绍,翻一翻.需要注意的是,C语言没有字符串类型哦. 计算机永远存储的都是补码,计算也是用补码进行的,只有在要输出的时候转…

Vite: 新一代高效的前端构建工具

概述 随着前端技术的飞速发展,构建工具在项目开发中扮演着至关重要的角色因为项目日益复杂,开发体验和构建效率成为了开发者关注的焦点在众多前端构建工具中,Vite凭借其独特的优势,逐渐成为开发者们的新宠Vite,作为一…

什么是 Java 中的 Optional 类,它如何帮助避免空指针异常?

想象一下,你正在厨房里烹饪一道美味的菜肴,需要从冰箱里取出牛奶来使用。但是,当你打开冰箱门时,发现牛奶已经喝完了,没有牛奶可用。这时,如果你直接假设牛奶一定在那里,并且不加检查就去倒牛奶…

github无法访问,下载慢的解决方法

GitHub是一个存储分享无数的开源项目和代码的宝库网站。然而,由于一些原因,国内用户在访问GitHub时常常遭遇无法访问或下载速度缓慢的问题。这不仅影响了开发者的工作效率,也使一些想要访问下载github文件的普通用户遇到困难。下面小编就来和…

如何简单的生成SSL证书

下面是简单的SSL证书生成的方法: 第1步:生成私钥 我们一般运用openSSL这个工具来生成一个RSA私钥 说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。 注意:一般生成私钥&…

Java stream操作流常用的方式

在Java中,Stream操作流是Java 8新引入的一个功能,它提供了很多强大的操作,方便我们进行集合的处理和操作。常用的Stream操作方式有: 1.过滤:使用filter()方法可以过滤掉集合中不符合条件的元素。 2.映射:…

python学习笔记四

1.自己平方本身 x2 x**4#xx**4 print(x) 2.把一个多位数拆分成单个数,方法一通过字符串下标获取对应元素,并对获取的元素使用eval函数把左右引号去掉,是字符串变为整型;方法二,通过对数进行取余和整除得到各个位的数 …

Django ORM 详解

Django ORM(Object-Relational Mapping,对象关系映射)是 Django 框架的一部分,它允许我们通过 Python 代码来操作数据库,而无需编写 SQL 语句。在这篇文章中,我们将详细介绍 Django ORM 的使用方法。 定义模型 在 Django 中,数据库的每个表都对应一个 Python 类,这个…

市面上很轻的 100kW 负载组

FX100S-C 负载组 EAK的 FX100S-C 负载组在轻质外壳中以 415Vac 50Hz 提供 100kW 的连续负载。数字仪表允许您测量功率、电压、电流和频率,同时还允许您在进行测试时记录数据。 EAK是市场上最轻的 100kW 负载组之一,它将使您能够访问其他负载组无法到达…

GPT版本通俗简单介绍

# GPT系列:人工智能语言模型的进化之旅 在人工智能的广阔天地里,自然语言处理技术一直是探索的前沿地带,而OpenAI推出的GPT(Generative Pre-trained Transformer)系列模型,无疑是这一领域内的一颗璀璨明星…

ISCC2024--pwn

ISCC2024 练武题 chaos 考点:基础UAF 分析 1.首先将附件放入IDA查看主函数功能,进入菜单函数: 注意到选项5不太一样,跟进该功能模块的函数查看: 分析得到该功能存在UAF漏洞,system(/bin/sh) 执行的前…

沙姆镜头标定与重建

沙姆定律( Scheimpflug principle)则可以保证测量平面的物体能够清晰成像, 因此能够起到调整景深区域位置的作用。Scheimpflug 镜头就是根据沙姆定律所设计的一种特殊的镜头,通过机械结构使镜头与相机本体发生一定程度的偏转&…

一文介绍 Tapable 的特性和使用,助力理解 webpack 插件架构!

一、引言 众所周知,webpack 的 plugins 非常灵活,可以在编译的不同阶段注册事件回调,这个功能便是基于 Tapable 实现的。 Tapable 的使用步骤如下: 创建钩子实例,如 SyncHook、SyncLoopHook 钩子;调用订阅接口注册事…

【树状数组 队列】1505. 最多 K 次交换相邻数位后得到的最小整数

本文涉及知识点 树状数组 队列 LeetCode1505. 最多 K 次交换相邻数位后得到的最小整数 给你一个字符串 num 和一个整数 k 。其中,num 表示一个很大的整数,字符串中的每个字符依次对应整数上的各个 数位 。 你可以交换这个整数相邻数位的数字 最多 k 次…

在线epub阅读器epub;在线图书阅读器;专门为epub定制的阅读器;免费在线电子图书epub阅读器

背景:不记得某时某刻了,就是当时想要使用电脑阅读epub图书,也找了好些个在线epub阅读器,但总有一些不如意的地方,如某些功能需要会员之类的,突发临想的就想到自己开发一个,就此,一个…

Python笔记 文件的写,追加,备份操作

一、文件的写操作 案例演示: # 1.打开文件 f open(python.txt,w)# 2.文件写入 f.write(hello world)# 3.内容刷新 f.flush() 注意: 直接调用write,内容并为真正的写入文件,二十会积攒在程序的内存中,称之为缓冲区…

Android SurfaceFlinger——OpenGL ES初始化(十三)

上一篇文章我们对 OpenGL ES 相关知识有了一定的了解,并知道在使用 OpenGL ES 是需要先通过 eglGetDisplay() 方法获取 EGLDisplay 默认主屏幕句柄。这里就分析一下 eglGetDisplay() 中的 egl_init_drivers() 初始化 OpenGL ES 的对应流程。 一、OpenGL ES初始化 1、egl.cpp…

【Docker】Docker网络模式

1、概述 docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:bridge模式:使--net bridge指定,默认设置;host模式:使--net host指定;none模式&…

前端技术栈学习:Vue2、Vue cli脚手架、ElementUI组件库、Axios

1 基本介绍 (1)Vue 是一个前端框架, 易于构建用户界面 (2)Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或项目整合 (3)支持和其它类库结合使用 (4&#…

期末复习题中的问题

一、编程中(包括函数)的问题 1. malloc 头文件是stdlib.h 二、第二次写复习题的不会的 三、程序填空 总结: 删除节点m >>>>要有一个指针来遍历找到这个m >>>> 用另一个指针指向这个指针的下一 个 >>&…