gpt4 book ai didi

java - 如何让jininternalframe在大型机中居中?

转载 作者:行者123 更新时间:2023-12-01 11:19:28 28 4
gpt4 key购买 nike

我正在开发一个java项目。我已经创建了带有桌面 Pane 和几个内部框架的主框架。我想将所有 j 个内部框架居中。有人可以给我一个如何将其居中的建议吗?谢谢。

最佳答案

试试这个逻辑。我只为一个 JInternalFrame 执行此操作。

import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;
import javax.swing.SwingUtilities;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.Component;

public final class CenterChild extends JFrame{

private JDesktopPane contentPane;
private JInternalFrame child;

@Override
public void frameInit(){
super.frameInit();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(0,0,500,500);
this.selfInitialize();
}

private void selfInitialize(){
contentPane = new JDesktopPane();
child = new JInternalFrame("Centered Child");

child.setClosable(true);
child.setVisible(true);

child.setSize(300,200);
//Centering the JInternalFrame
child.setLocation((getWidth() - child.getWidth())/2, (getHeight() - child.getHeight())/2);

contentPane.add(child);
this.setContentPane(contentPane);

addComponentListener(new ResizeEventHandler());
}
public static void main(String[] args) {
SwingUtilities.invokeLater(()->{ new CenterChild();});
}
//Code that re positions JInternalFrame while main window size changes
private class ResizeEventHandler extends ComponentAdapter{
@Override
public void componentResized(ComponentEvent e){
Component invoker = e.getComponent();
//re positioning the JInternalFrame to the main window's center
child.reshape((invoker.getWidth() - child.getWidth())/2, (invoker.getHeight() - child.getHeight())/2,300,200);
}
}
}

关于java - 如何让jininternalframe在大型机中居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429338/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com