如何让 JInternalFrame 填充容器并禁用拖动功能?

2023-12-09

我正在做一个项目,大型机中有JInternalFrames。现在,我们需要让它们成为 JFrame。我正在考虑使用 JFrame 来保存 JInternalFrame。问题是Internalframe的标题栏在那里,用户可以拖动它。

有没有办法让内部框架像 JFrame 中的窗格一样工作? 上网查了一下,发现有人把车顶板拆掉了。

对此你有什么好的想法吗?

感谢您!

更新: 也许我走错了路。真正的问题是 JInternalframe 无法脱离主框架,或者有什么办法让它看起来像是在框架之外?


有什么方法可以使内部框架像窗格中的窗格一样工作 J框架

我不确定你的意思pane,但我想就像JPanel?当然可以,但为什么,这将是我的问题,除非你想要某种快速的浮动面板,但比你说的你不希望它可拖动?所以我有点不确定你的动机,让我厌倦回答......

问题是内部框架的标题栏在那里

那么这里是删除的代码标题栏(找到了here):

//remove title pane http://www.coderanch.com/t/505683/GUI/java/JInternalframe-decoration
BasicInternalFrameTitlePane titlePane =(BasicInternalFrameTitlePane)((BasicInternalFrameUI)jInternalFrame.getUI()).getNorthPane();
jInternalFrame.remove(titlePane);

用户可以拖动它。

我发现这个可以使JInternalFrame移除后不可移动MouseListeners 这使得它可以移动,但重要的是要注意它没有必要移除MouseListeners 作为用于制作它的方法不可拖动的将删除NorthPane其中MouseListener也被添加,因此我们没有必要自己删除它:

//remove the listeners from UI which make the frame move
BasicInternalFrameUI basicInternalFrameUI = ((javax.swing.plaf.basic.BasicInternalFrameUI) jInternalFrame.getUI());
for (MouseListener listener : basicInternalFrameUI.getNorthPane().getMouseListeners()) {
    basicInternalFrameUI.getNorthPane().removeMouseListener(listener);
}

根据你的标题:

怎么做JInternalFrame填充容器

只需致电setSize(int width,int height) on JInternalFrame与参数JDesktopPanes width and height (JDesktopPane将通过重写调整大小getPreferredSize()).

这会给我们这个:

enter image description here

import java.awt.Dimension;
import java.awt.HeadlessException;
import java.awt.event.MouseListener;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.SwingUtilities;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane;
import javax.swing.plaf.basic.BasicInternalFrameUI;

/**
 *
 * @author David
 */
public class Test {

    public Test() {
        createAndShowGUI();
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Test();

            }
        });
    }

    private void createAndShowGUI() throws HeadlessException {
        JFrame frame = new JFrame();
        frame.setResizable(false);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        final JDesktopPane jdp = new JDesktopPane() {
            @Override
            public Dimension getPreferredSize() {
                return new Dimension(300, 300);
            }
        };

        frame.setContentPane(jdp);
        frame.pack();

        createAndAddInternalFrame(jdp);

        frame.setVisible(true);
    }

    private void createAndAddInternalFrame(final JDesktopPane jdp) {
        JInternalFrame jInternalFrame = new JInternalFrame("Test", false, false, false, false);
        jInternalFrame.setLocation(0, 0);
        jInternalFrame.setSize(jdp.getWidth(), jdp.getHeight());

        //remove title pane http://www.coderanch.com/t/505683/GUI/java/JInternalframe-decoration
        BasicInternalFrameTitlePane titlePane = (BasicInternalFrameTitlePane) ((BasicInternalFrameUI) jInternalFrame.getUI()).getNorthPane();
        jInternalFrame.remove(titlePane);

        /*
         //remove the listeners from UI which make the frame move
         BasicInternalFrameUI basicInternalFrameUI = ((javax.swing.plaf.basic.BasicInternalFrameUI) jInternalFrame.getUI());
         for (MouseListener listener : basicInternalFrameUI.getNorthPane().getMouseListeners()) {
         basicInternalFrameUI.getNorthPane().removeMouseListener(listener);
         }
         */
        jInternalFrame.setVisible(true);

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

如何让 JInternalFrame 填充容器并禁用拖动功能? 的相关文章

  • Java Swing BoxLayout 忽略 AlignmentX

    在下面的代码中 通过调用setAlignmentX with Component LEFT ALIGNMENT我希望在居中的滑块上获得左对齐的标签 由于某种原因 标签也居中 似乎与传递给 setAlignmentX 的值无关 我必须向 se
  • 将处理项目移至 Eclipse

    我已经在处理项目上工作了一段时间 现在想将其移至 Eclipse 中 我已经在 Eclipse 环境中安装了 Proclipse 我有很多扩展名为 pde 的文件 然而 Proclipse 文件都以 java 结尾 所有 pde 文件都存在
  • JAVA 中的 Composer 相当于什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前从 PHP 转向 java 有没有类似的工具composer https getcomposer org 在 PHP 中用于 JAV
  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • java 中的梵文 i18n

    我正在尝试使用来自互联网的示例 ttf 文件在 java 中使用 i18n 进行梵文 印地文 我可以加载资源包条目 还可以加载 ttf 并设置字体 但它不会根据需要呈现 jlabel 它显示块代替字符 如果我在 Eclipse 中调试 我可
  • Java 小程序在 Mac 上闪烁

    这个问题很奇怪 问题并非在每个平台上都会发生 我在使用 MacOSX 的 Google Chrome 中出现了这种情况 但在 Safari 中却没有出现这种情况 对于使用 Windows 的朋友来说 在 Google Chrome 上运行得
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • 如何将本机数据库运算符 (postgres ~) 与 JPA 标准生成器一起使用?

    我使用 JPA 2 0 标准构建以下查询 简化 select n from notif n where n message b la 我正在使用 postgresql 数据库 我真的需要 运算符 而不是像 我可以使用与 CriteriaBu
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • 绘制平滑曲线

    我想创建更平滑的曲线 而不仅仅是线角 这是我现在画的图 这是我的代码 case FREEHAND float pts float ptk ptk new float 2 imageMatrix invert inv if mCurrentS
  • 如何在Netbeans中设置JList的ListModel?

    我在 Netbeans IDE 的帮助下设计了一个 Swing GUI 该 GUI 包含一个 JList 默认情况下 它使用 QAbstractListModel 将其作为 JList 构造函数中的参数传递以创建该 JList 我想在 Ne
  • 如何在 Eclipse 中获得完全限定的类名?

    有没有一种快速方法可以在 Eclipse 中单击 Java 类并获取其完全限定名称 或将其复制到剪贴板 2016年6月29日编辑 正如 Jeff 所指出的 您只需要执行以下第二步 1 Double click on the class na
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • 如何在 spring-data 中强制使用 CrudRepository 进行预加载?

    我有一个实体 其中包含List就是这样lazy默认加载 interface MyEntityRepository extends CrudRepository
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • Java时区混乱

    我正在运行 Tomcat 应用程序 并且需要显示一些时间值 不幸的是 时间快到了 还有一个小时的休息时间 我调查了一下 发现我的默认时区被设置为 sun util calendar ZoneInfo id GMT 08 00 offset
  • 如何在J2ME中获取数字的幂[重复]

    这个问题在这里已经有答案了 可能的重复 J2ME power double double 数学函数实现 https stackoverflow com questions 2076913 j2me powerdouble double ma
  • 如何使用socket.io发送图像文件(二进制数据)?

    我无法从以下位置发送数据Android Client to NodeJS Server I use Socket IO 客户端 https github com socketio socket io client java我的客户端中的ja

随机推荐

  • SQL Server 表可以有两个标识列吗?

    我需要将一列作为主键 另一列作为自动递增订单号字段 这可能吗 编辑 我想我只会使用复合数作为订单号 不管怎么说 多谢拉 CREATE TABLE dbo Foo FooId int IDENTITY 1 1 NOT NULL BarId i
  • 带参数的图像 - HTML

    我不知道如何提出这个问题 我不知道下面的标签是如何工作的 img src img png value 23 这个标签工作正常 并且它正确地渲染了图像 是否value 23有效果吗 或者它被浏览器忽略了 我什至不知道如何谷歌这个 就像向图像传
  • 为什么 System.Windows.Controls.Button 的内边距始终为 10px?

    请参阅屏幕截图 青色边框框是按钮 蓝色填充是矩形 我一生都无法弄清楚如何摆脱按钮中的填充 有没有办法将矩形放置在左上角 使其接触青色边框 Thanks 您是否尝试过设置Rectangle的边际为0
  • 初始加载屏幕上的角度冻结 SVG 动画

    我想在浏览器加载 Angular 5 的脚本和其他资源时播放动画 例如这个 SVG 动画
  • 您必须在实例化此 ParseObject 子类之前注册它

    我在我的中收到以下错误Android应用程序使用Parse You must register this ParseObject subclass before instantiating it In my Application对象 我正
  • Neo4j 在浏览器图形视图中仅显示特定关系

    我有这个密码查询 MATCH i Issue name SN 229 d ON DATE gt s Stage RETURN i MAX d long MIN d long 1 AS Days s and I get these resul
  • 未显示 Toast 消息

    我试图使用以下代码在我的应用程序中显示一条 toast 消息 AlertDialog Builder alert new AlertDialog Builder this alert setTitle Do you want to cont
  • Java类实例递归调用

    我有一个非常基本的java理论问题 为什么 Employee 类在下面的示例中递归地调用其自身 class Employee Employee emp new Employee public class Manager extends Em
  • 阿帕奇 POI 和颜色

    我在使用 Apache POI 时遇到一些问题 如果能得到一些帮助就好了 我想删除 Excel 工作表子部分中的颜色 为此 我尝试的第一件事是渲染我想要清理的单元格 假设仅第一行的单元格 并将其颜色设置为白色 cell getCellSty
  • 识别 Sublime Text 3 代码片段源

    有谁知道如何识别 Sublime Text 3 代码片段的来源 有一个用于 Rails 的 我认为它来自某个包 我已经卸载了该软件包 但该代码片段仍然可以使用 这让我发疯 Press Ctrl Backtick to open the co
  • 如何编写迭代器?

    我有一个节点网络 在节点之间传递结构化数据 对于我的子问题 我们有这个分支 节点的线性序列 nodes source n1 n2 n3 n4 第一个节点是生成器 每个其他节点从输入节点获取值并提供输出值 当前的实现是从管道的普通 get 和
  • jQuery onmouseover + onmouseout / 悬停在两个不同的 div 上

    我有一个问题 这是我的 HTML 的一部分 div Here Hover div div Here content to show div 这是我的 jQuery 脚本的一部分 jQuery div 2 hide jQuery div 1
  • 如何使用 vegas.js 插件添加文本动画

    我正在使用 vegas js 插件 http vegas jaysalvat com documentation 对于我的网站 我想用这些图像显示一些文本 我如何添加一些带有图像的动画文本 在 body 中初始化 vegas js
  • Flask url_for 在模板的外部 JavaScript 中不起作用

    在index html 中 我链接到index js 文件 单击一个按钮 js 会向 Flask 后端发送请求 后端返回静态文件路径 data Sharon 4 png 我想使用以下函数以 HTML 形式呈现它 但它不起作用 为了简化它 我
  • 将代码直接放在InitializeComponent 之后是不好的做法吗?

    我只是想知道一件事 我有一个加载页面的框架 当前每个页面都有一个Page Loaded每次访问页面时都会运行的方法 这工作得很好 但如果我使用导航转到以前访问过的页面 我会注意到错误 返回页面后 Page Loaded我不希望再次被呼叫 使
  • 仅选择具有上次修改时间戳的行,不选择具有相同 ID 和旧时间戳的重复行

    我找不到解决我的问题的方法 我有两个表 Order 和 OrderDetail 订单表 简单版 ID modified 1 7 1 2018 2 10 1 2018 3 15 1 2018 4 20 1 2018 5 25 1 2018 订
  • Oracle插入if不存在语句

    insert into OPT email campaign id values email protected 100 where not exists select from OPT where email email protecte
  • LINQ 到实体转换问题

    我正在尝试以通用方式过滤 LINQ to entities 查询 但我不断收到错误 这是一段代码 private IQueryable
  • 将 window tester 与 eclipse 集成以测试 UI

    我们计划使用窗口测试器自动测试我的 Eclipse 应用程序 GUI 日食的版本是氧气 请告诉我如何将窗口测试器与 Eclipse 应用程序集成 我在 eclipse 市场上没有看到任何窗口测试器插件 如果没有 我可以使用哪个 GUI 测试
  • 如何让 JInternalFrame 填充容器并禁用拖动功能?

    我正在做一个项目 大型机中有JInternalFrames 现在 我们需要让它们成为 JFrame 我正在考虑使用 JFrame 来保存 JInternalFrame 问题是Internalframe的标题栏在那里 用户可以拖动它 有没有办