java panel适应窗口_如何使JTabbedPane自动调整大小以适应页面尺寸?
我在JFrame中只有JTabbedPane. JTabbedPane将其尺寸设置为最大页面宽度/高度.
由于页面大小不同,是否可以在选择其他页面时强制JTabbedPane更改其尺寸?
最重要的一个是它现在的行为,最底层的是我希望它如何表现(我手工调整大小)
解决方法:
这很简单.它涉及动态计算页面尺寸之间的差异,并使用它们来强制JTabbedPane上的首选大小.我做了一个快速的实验并且有效.所以不是在这里放置大量文本 – 这里是代码.这不完美,但你应该有个主意.当然,欢迎提出问题.
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Test {
private static int maxW = 0;
private static int maxH = 0;
public static void main(String[] args) {
final JFrame f = new JFrame();
final JTabbedPane tabs = new JTabbedPane();
tabs.add( createPanel(Color.RED, 100, 100), "Red");
tabs.add( createPanel(Color.GREEN, 200, 200), "Green");
tabs.add( createPanel(Color.BLUE, 300, 300), "Blue");
final Dimension originalTabsDim = tabs.getPreferredSize();
tabs.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
Component p = ((JTabbedPane) e.getSource()).getSelectedComponent();
Dimension panelDim = p.getPreferredSize();
Dimension nd = new Dimension(
originalTabsDim.width - ( maxW - panelDim.width),
originalTabsDim.height - ( maxH - panelDim.height) );
tabs.setPreferredSize(nd);
f.pack();
}
});
f.setContentPane(tabs);
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
private static final JPanel createPanel( Color color, int w, int h ) {
JPanel p = new JPanel();
p.setBackground(color);
p.setPreferredSize( new Dimension(w, h));
maxW = Math.max(w, maxW);
maxH = Math.max(h, maxH);
return p;
}
}
标签:java,swing,jtabbedpane
来源: https://codeday.me/bug/20190607/1191254.html
java panel适应窗口_如何使JTabbedPane自动调整大小以适应页面尺寸?相关推荐
- 点任务栏不切换窗口_如何使您的任务栏按钮始终切换到最后一个活动窗口
点任务栏不切换窗口 Since Windows 7, apps with multiple open windows are combined into a single taskbar button ...
- java 变量名 字符串_如何使字符串值在java中调用特定的现有JButton变量名?
所以,我知道有这样的: int number = Integer.parseInt("5"); String numtxt = Integer.toString(12); doub ...
- hta 窗口_如何使一个HTA位于屏幕中心(Win32_DesktopMonitor)
我们可以调整(如果需要)窗口大小并使其居中,但这样做时会在屏幕上出现瞬间的闪烁.这并不是太明显,其实际结果就是你所期望的:HTA 会位于屏幕中心.我们希望这个过程变得稍微流畅些,但目前我们不得不使用此 ...
- java 控制台 移动光标_如何使控制台中光标移动到指定位置?
Its_forever package interfaces; import java.util.Scanner; public class Test { public static void mai ...
- java自签名程序_如何使机器信任自签名Java应用程序
我正在部署一个应用程序使用 JAWS,它的工作,直到2013年底,当我得到一个警告,然后今天上午Java完全阻止它.法语的消息是: 应用程序bloquéeparparamètresdesécurité ...
- java 获取活动窗口_用Java获取活动窗口信息
小编典典 减轻您的痛苦,并使用JNA.您将需要下载 Win32 API的 jna.jar 和 jna -platform.jar .该PInvoke的 wiki和MSDN是找到合适的系统调用是有用的. ...
- java 移动其他窗口_移动窗口平均值不等
TL;DR: 无论如何我可以摆脱我的第二个 for -loop? 我在2D网格上有一系列时间点 . 为了消除它们位置的快速波动,我在一个帧窗口上平均坐标 . 现在在我的情况下,它想要包含特定点的帧,如 ...
- java绘制半透明图片_如何使绘制的图像在Java中透明
正如另一个提到的答案,最简单的方法可能是简单地使用具有透明背景的PNG图像(您可以使用像GIMP这样的图像编辑器创建这些图像).或者,如果您仅限于具有纯色背景的PNG图像,以下是如何将PNG中的给定颜 ...
- java panel画椭圆_如何在Java 2D中绘制椭圆?
在Ellipse2D类定义由成帧矩形定义的椭圆.您可以使用double或float值创建椭圆.使用双精度值创建椭圆时,请使用Ellipse2D.Double类.对于浮点值,您可以使用Ellipse2D ...
最新文章
- 业内公认的AI发展最大挑战,有哪些技术突破机会?
- 全球权威声纹识别竞赛斩获双料冠军 网易AI Lab智能技术领先国际
- Win10无法修改编辑hosts文件
- 查看LoadRunner脚本请求日志和服务器返回值方法
- PyTorch 实现经典模型2:AlexNet
- iOS之AVPlayerViewController的使用oc
- YbtOJ#20236-[冲刺NOIP2020模拟赛Day9]红点蓝点【线段树,堆】
- 前端学习(418):京东制作页面26中间模块划分
- 【USACO15DEC】最大流Max Flow
- 【kafka】kafka 消费报错 Failed to add leader for partitions
- 软考设计师15-数据结构01
- python定位相邻节点_Python selenium 父子、兄弟、相邻节点定位方式详解
- POJ3435 Sudoku Checker【谜题+数独】
- 【无标题】计算机一级考试MS OFFICE选择题题库10套及答案
- Photoshop抠图笔记
- 关于from scipy.misc import comb ImportError: cannot import name 'comb'的问题
- linux防ddos攻击脚本,Linux系统防止DDOS攻击脚本
- 2016年SaaS类早期初创企业融资状况及预测
- openEuler Summit | 江大勇:凝聚创新力量 逐梦数字时代星辰大海
- 二叉树遍历结果推二叉树_二叉树遍历技术
热门文章
- 关于visual studio2010出现中文乱码以及复制代码到word注释中文乱码的解决方案
- 二叉排序树(BST查找、插入、删除、遍历)——基于树的查找(一)
- 转载自:【腾讯优测干货分享】Android5.0-6.0双卡适配指南
- 台式电脑可以叫计算机吗,怎么看台式电脑是否有蓝牙功能,具体的
- 浅谈实体店用户运营心得
- 我的工程师爸爸 - 音频应用DIY系列之六:录音棚
- ShareSDK常见问题汇总(iOS版)
- 鸿蒙系统上市后P30适配吗,鸿蒙系统+10G内存+双5G华为P50 Pro,华为P30无奈下跌黯然神伤...
- html中背景条纹效果,CSS揭秘之《条纹背景》
- Hive、Pig、HBase的关系与区别,值得收藏!