我在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自动调整大小以适应页面尺寸?相关推荐

  1. 点任务栏不切换窗口_如何使您的任务栏按钮始终切换到最后一个活动窗口

    点任务栏不切换窗口 Since Windows 7, apps with multiple open windows are combined into a single taskbar button ...

  2. java 变量名 字符串_如何使字符串值在java中调用特定的现有JButton变量名?

    所以,我知道有这样的: int number = Integer.parseInt("5"); String numtxt = Integer.toString(12); doub ...

  3. hta 窗口_如何使一个HTA位于屏幕中心(Win32_DesktopMonitor)

    我们可以调整(如果需要)窗口大小并使其居中,但这样做时会在屏幕上出现瞬间的闪烁.这并不是太明显,其实际结果就是你所期望的:HTA 会位于屏幕中心.我们希望这个过程变得稍微流畅些,但目前我们不得不使用此 ...

  4. java 控制台 移动光标_如何使控制台中光标移动到指定位置?

    Its_forever package interfaces; import java.util.Scanner; public class Test { public static void mai ...

  5. java自签名程序_如何使机器信任自签名Java应用程序

    我正在部署一个应用程序使用 JAWS,它的工作,直到2013年底,当我得到一个警告,然后今天上午Java完全阻止它.法语的消息是: 应用程序bloquéeparparamètresdesécurité ...

  6. java 获取活动窗口_用Java获取活动窗口信息

    小编典典 减轻您的痛苦,并使用JNA.您将需要下载 Win32 API的 jna.jar 和 jna -platform.jar .该PInvoke的 wiki和MSDN是找到合适的系统调用是有用的. ...

  7. java 移动其他窗口_移动窗口平均值不等

    TL;DR: 无论如何我可以摆脱我的第二个 for -loop? 我在2D网格上有一系列时间点 . 为了消除它们位置的快速波动,我在一个帧窗口上平均坐标 . 现在在我的情况下,它想要包含特定点的帧,如 ...

  8. java绘制半透明图片_如何使绘制的图像在Java中透明

    正如另一个提到的答案,最简单的方法可能是简单地使用具有透明背景的PNG图像(您可以使用像GIMP这样的图像编辑器创建这些图像).或者,如果您仅限于具有纯色背景的PNG图像,以下是如何将PNG中的给定颜 ...

  9. java panel画椭圆_如何在Java 2D中绘制椭圆?

    在Ellipse2D类定义由成帧矩形定义的椭圆.您可以使用double或float值创建椭圆.使用双精度值创建椭圆时,请使用Ellipse2D.Double类.对于浮点值,您可以使用Ellipse2D ...

最新文章

  1. 业内公认的AI发展最大挑战,有哪些技术突破机会?
  2. 全球权威声纹识别竞赛斩获双料冠军 网易AI Lab智能技术领先国际
  3. Win10无法修改编辑hosts文件
  4. 查看LoadRunner脚本请求日志和服务器返回值方法
  5. PyTorch 实现经典模型2:AlexNet
  6. iOS之AVPlayerViewController的使用oc
  7. YbtOJ#20236-[冲刺NOIP2020模拟赛Day9]红点蓝点【线段树,堆】
  8. 前端学习(418):京东制作页面26中间模块划分
  9. 【USACO15DEC】最大流Max Flow
  10. 【kafka】kafka 消费报错 Failed to add leader for partitions
  11. 软考设计师15-数据结构01
  12. python定位相邻节点_Python selenium 父子、兄弟、相邻节点定位方式详解
  13. POJ3435 Sudoku Checker【谜题+数独】
  14. 【无标题】计算机一级考试MS OFFICE选择题题库10套及答案
  15. Photoshop抠图笔记
  16. 关于from scipy.misc import comb ImportError: cannot import name 'comb'的问题
  17. linux防ddos攻击脚本,Linux系统防止DDOS攻击脚本
  18. 2016年SaaS类早期初创企业融资状况及预测
  19. openEuler Summit | 江大勇:凝聚创新力量 逐梦数字时代星辰大海
  20. 二叉树遍历结果推二叉树_二叉树遍历技术

热门文章

  1. 关于visual studio2010出现中文乱码以及复制代码到word注释中文乱码的解决方案
  2. 二叉排序树(BST查找、插入、删除、遍历)——基于树的查找(一)
  3. 转载自:【腾讯优测干货分享】Android5.0-6.0双卡适配指南
  4. 台式电脑可以叫计算机吗,怎么看台式电脑是否有蓝牙功能,具体的
  5. 浅谈实体店用户运营心得
  6. 我的工程师爸爸 - 音频应用DIY系列之六:录音棚
  7. ShareSDK常见问题汇总(iOS版)
  8. 鸿蒙系统上市后P30适配吗,鸿蒙系统+10G内存+双5G华为P50 Pro,华为P30无奈下跌黯然神伤...
  9. html中背景条纹效果,CSS揭秘之《条纹背景》
  10. Hive、Pig、HBase的关系与区别,值得收藏!