在 JScrollPane 中使用绝对布局

2024-03-05

我需要使用具有绝对布局的 JScrollPane。我知道根本不推荐使用 setLayout(null) 。我一直在读到,如果您想在 JScrollPane 中使用绝对布局,则必须设置内部元素的首选大小属性,以便 JScrollPane 可以计算其大小。

我一直在尝试下一个代码来更改元素的顺序和大小,但我无法弄清楚我错在哪里。

import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;


public class frame extends JFrame {

private JPanel contentPane;
private JScrollPane scrollPane;

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                frame frame = new frame();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public frame() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setLayout(null);
    setContentPane(contentPane);

    JPanel panel = new JPanel();
    panel.setBackground(Color.red);
    panel.setBounds(0,0,600,600);
    panel.setPreferredSize(new Dimension(420,280));

    scrollPane = new JScrollPane(panel);
    scrollPane.setBounds(0, 0, 600, 600);
    scrollPane.setLayout(null);
    scrollPane.setBackground(Color.green);

    scrollPane.add(panel);
    scrollPane.setPreferredSize(new Dimension(450,300));
    contentPane.add(scrollPane);
}
}

为什么 setPreferredSize 没有做正确的工作? 提前致谢。


首先,不要更改滚动窗格的布局管理器,它不是您想要实现的目标所必需的

其次,滚动窗格通过JViewport。您必须将容器添加到其中(scrollPane.add(panel)是错误的做法),而是使用scrollPane.setViewportView(panel)

第三,你想看一下可滚动 http://docs.oracle.com/javase/7/docs/api/javax/swing/Scrollable.html作为滚动窗格的界面不仅仅依赖于其内容的首选大小

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JScrollPane 中使用绝对布局 的相关文章

  • PDFBox 更改线条颜色

    我使用 pdfbox 1 8 5 并尝试使用绘制彩色线PDPageContentStream drawLine 我尝试过PDPageContentStream setNonStrokingColor 255 0 0 但它不起作用 我也没有找
  • 如何将H2数据库文件存储到项目目录中

    当我使用H2数据库时 数据库文件存储在C Users MyName TestDataBase db目录 H2路径是jdbc h2 TestDataBase 这是默认的 H2 数据库路径 是否有可能像这样将 H2 数据库文件存储到我的项目目录
  • 在 Java 1.7.0 下运行的 SQL-Server (MSSQL-JDBC 3.0) 中的日期列检索为过去 2 天

    当使用 SQLServer2008 从 SQLServer2008 检索 DATE 类型的列时 出现奇怪的效果在官方 Oracle JDK 1 7 0 下运行时 主机操作系统是Windows Server 2003 所有日期列均检索为two
  • 如何在 Spring MVC 中使用延迟加载

    Spring MVC中如何使用延迟加载 我现在正在使用 eager 但这会使我的应用程序运行速度变慢 这是我的域的一部分 ManyToMany fetch FetchType EAGER JoinTable name NEWS TAG jo
  • 我们如何使用 StringBuilder 在字符串前面添加字符串?

    我知道我们可以使用附加字符串StringBuilder 有没有一种方法可以使用前置字符串 即在字符串前面添加字符串 StringBuilder这样我们就可以保持性能优势StringBuilder offers 使用位置参数设置为 0 的 i
  • 如何在 spring 中将模型作为重定向属性传递

    redirectModel addAttribute Model model return REDIRECT PREFIX my company organization management manage users 当我通过这个时 我得
  • 将密钥添加到选定的密钥集中

    我正在编写一个 NIO 服务器 并希望响应用户请求 即将一些数据写入通道 Selector selector if selector selectNow 0 if key isReadable SocketChannel channel k
  • Spring Data Redis JedisConnectionException:流意外结束

    雷迪斯3 0 5Spring数据Redis 1 3 6绝地武士2 6 3 我们的 Web 应用程序通过 pub sub 从 Redis 接收数据 还以键 值对的形式在 Redis 上执行数据读 写 读 写发生在监听线程 独立监控线程和htt
  • 我应该使用 Facelets“jsfc”属性吗?

    Facelets 使用jsfc属性将 HTML 元素转换为其关联的JSF成分 这对于快速原型设计非常有帮助 因为它允许您使用可视化设计工具创建视图 然而我最近发现this http weblogs java net blog 2008 12
  • Java 文档生成器为 Xml 字符串返回 null 文档

    I have tried all possible answers https stackoverflow com questions 33098082 passing xml string as document returning nu
  • Java HTTPS客户端证书认证

    我对HTTPS SSL TLS我对客户在使用证书进行身份验证时到底应该提供什么内容感到有点困惑 我正在编写一个 Java 客户端 需要执行一个简单的操作POST数据到特定的URL 这部分工作正常 唯一的问题是它应该重新完成HTTPS The
  • jni.h:没有这样的文件或目录

    我一直在关注本教程 http www java tips org other api tips jni simple example of using the java native interface html 在第 5 步 我从 GCC
  • java 对字母数字字符串进行排序

    我有这个数组存储用户添加的一些 URL 的后缀 U2 U3 U1 U5 U8 U4 U7 U6 当我这样做时 for Map
  • 面向 Clojure 用户的 Java

    我一直在断断续续地使用 Lisp 并且正在赶上 clojure clojure的好处是我可以自然地使用所有的java函数 而clojure的坏处也是我必须自然地了解java函数 例如 我不得不花一些时间 谷歌搜索 来查找 Java 中的平方
  • 在idea ide中出现钻石运算符的编译错误

    我在尝试在idea ide中编译一些简单的源代码时收到此错误 java diamond operator is not supported in source 1 6 use source 7 or higher to enable dia
  • 在自定义 BaseAdapter 子类中使用 Butter Knife 会导致“无法注入视图”错误

    我正在尝试使用 Butter Knife 来简化自定义 BaseAdapter 类的创建 我正在遵循这里的示例 http jakewharton github io butterknife http jakewharton github i
  • 自定义 lint 规则,确保不调用特定方法

    我想确保在我的 Android 应用程序 Java 和 Kotlin 代码中 中不会调用特定类的特定方法 假设 我有一个名为Bar有两种方法 allowed and disallowed 这是代码 package com public cl
  • 使用 libGDX 写入 Json

    我是 Json 和 libGDX 的新手 但我创建了一个简单的游戏 我想将玩家姓名及其分数存储在 Json 文件中 有没有办法做到这一点 我想创建一个 Json 文件Gdx files localStorage如果它不存在 如果存在 则向其
  • 从 Java 8 流中获取每个第 n 个元素

    假设我有一个这样的列表 1 2 3 4 5 6 7 8 9 10 是否可以使用 Java 8 流从该列表中获取每个第二个元素以获得以下内容 1 3 5 7 9 或者甚至可能是每三个元素 1 4 7 10 基本上 我正在寻找一个函数来获取流的
  • 如何从 netbeans 远程调试 jar

    我正在尝试弄清楚如何调试远程运行的 jar 这是我的场景 我的 jar 将从 VPS 运行 这个jar基本上运行一个服务器 对于游戏 所以它还连接到 mysql 数据库 我使用 3 个 bat 文件启动服务器 如下所示 设置 CLASSPA

随机推荐

  • Mac gcc 非虚拟 thunk 错误

    我仅在应用程序的部署版本中收到这些非虚拟 thunk 错误 它使用名为 Lgi 的私有框架 使用 XCode 3 1 4 最新的 leopard 在 10 5 8 上构建 错误如下所示 Ld Users matthew Code Scrib
  • 如何使用 C# 从 IIS 获取当前的 Worker Request 列表?

    我正在为 RESTful Web 服务状态页面编写代码 我想知道是否有办法将当前请求从 IIS 获取到 C 中 我正在使用 IIS 7 0 我想要的信息在下面 IIS gt 工作进程 gt ASP NET v4 0 gt 请求 您可以使用G
  • 无法在 Azure Function v2 中加载文件或程序集“System.Private.ServiceModel”

    我使用了 v2 azure 函数 持久函数 和调用服务的自定义 dll net core 2 2 但出现以下异常 无法加载文件或程序集 System Private ServiceModel 版本 4 1 2 4 文化 中性 PublicK
  • android中imageView的单击和双击的区别

    我尝试过以下代码来区分单击和双击 单击一下就可以了 当我双击图像视图时 单击和双击部分内的代码都会执行 private static final long DOUBLE PRESS INTERVAL 250 in millis privat
  • 数据进入错误的工作簿

    我有一个编码为从中收集信息并将数据传输到摘要工作簿的工作簿 该代码在收集数据时有效 但它将数据打印到从中收集数据的工作簿 而不是摘要工作簿 这很奇怪 因为它打开摘要工作簿 甚至计算行数 因此数据将转到第一个空行 有人可以告诉我我做错了什么吗
  • Netbeans 中 try-catch Logger 的自定义代码片段

    每次我使用灯泡提示在 Netbeans 中添加 try catch 块时 它都会自动添加以下行 import java util logging Level import java util logging Logger catch Log
  • gradle build Javadoc 任务因“未知标签:attr”而失败

    我正在尝试建立android autofittextview https github com grantland android autofittextview使用 gradle 从命令行进行项目 然而 每次都失败并出现以下错误 User
  • 列表列表中是否存在某个元素?

    我想查找给定元素是否存在于列表列表中 只有当该元素存在于列表的第一个列表中的某处时 我才得到正确的结果 有什么建议吗 memberlist X X T1 T2 memberlist X H T1 T2 memberlist X T1 T2
  • Backbone.js html 选择/单选更改事件未触发,但单击事件是

    我正在学习骨干 但我一直坚持为 html 选项元素绑定 onchange 事件 我尝试使用 change 或 change id 进行绑定 但这些都没有触发 但是 click 和 click id 事件都有效 div div
  • 如何将命名空间感知设置为 false?

    我正在尝试使用 EclipseLink MOXy 解析一些 XML 但它失败了xsi属性 如果我删除它 它解析得很好 然而 我有 100GiB 的 XML 需要费力地浏览 并且无法更改源文件 有人建议如果我可以设置XmlParser set
  • 将基于标签栏的 iPhone 项目迁移到 iPad

    像许多其他开发人员一样 我创建了使用UITabBarController作为根控制器 选项卡视图使用UINavigationController从列表深入到详细视图 和许多其他开发人员一样 我需要将这些应用程序迁移到 iPad 以便它们利用
  • OCaml 是否复制了自定义块?

    想象一下 我有一个名为 libcat 的 C 库 用于与我的毛茸茸的猫进行交互 因此 我正在为 OCaml 编写绑定来简化与 fluffy 的交互 module type CAT sig type cat val find gt cat v
  • Ansible 模板中的 For 循环

    我有问题 我在模板文件中使用 for for vhost in item server vhost endfor 与项目一起使用文件 yml ansible 中的 with items 但出出是 server d server o serv
  • aspnet 表 - 指定 TableCell 宽度?

    我有一个 asp net 表 我试图将我的列格式化为所有相同的宽度 或者说 4 列分别为 20 30 20 和 30 但是以下代码不起作用
  • android:在imageview中拉伸图像以适合屏幕

    我有一个imageview其高度和宽度设置为fill parent with a linearlayout具有相同的值集 所以我想这应该设置我的图像以适合屏幕 但它只适合 80 横向模式下的顶部和底部边距 我尝试了以下代码但没有成功 Dis
  • 将 textPath 方向从逆时针翻转为顺时针?

    默认情况下 SVG 以逆时针方式将文本环绕路径 文本的天花板粘住了路径 如何将方向更改为顺时针 以使文本的地板粘在圆周上而不是天花板上 textspace letter spacing 5px font family fantasy fon
  • 在 android 和 windows 中使用 sha1prng 给出不同的序列

    我在我的android程序和java程序中都使用了sha1prng作为伪随机数生成器算法 我给它们都设置了相同的值 但是android中生成的序列和java中生成的序列不一样 为什么会发生这种情况 解决这个问题的方法是什么 我认为这是因为
  • 如何使用 ActionCable 作为 API

    我使用 Rails 5 beta 1 和 ActionCable 构建了一个非常简单的应用程序 用于显示用户何时上线并让他们互相发送消息 现在 我基本上想采用 ActionCable 的客户端部分 在另一个应用程序的上下文中实现它 这确实n
  • 将身份添加到现有项目

    我有一个 MVC 项目 我想向其中添加 Identity 但我似乎找不到任何关于如何执行此操作的好文章 有没有一种简单的方法可以将身份添加到现有项目中 我已经有一个数据库 里面有东西 好吧 在一方面 您只需添加 Nuget 包并开始用它编写
  • 在 JScrollPane 中使用绝对布局

    我需要使用具有绝对布局的 JScrollPane 我知道根本不推荐使用 setLayout null 我一直在读到 如果您想在 JScrollPane 中使用绝对布局 则必须设置内部元素的首选大小属性 以便 JScrollPane 可以计算