栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

获取秋千组件的位置

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取秋千组件的位置

将您的内容添加

JPanel
Jframe
s的 contentPane中,
从而使您能够使用X和Y坐标
getX()
get()
尽管我建议先添加所有组件,因为随着添加的组件的增加,这些点可能会发生变化,然后如垃圾桶所说,只需调用
pack()
框架实例。

我做了一个简短的示例来演示:

import java.awt.BorderLayout;import javax.swing.Jframe;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.SwingUtilities;public class Test {    public static void main(String[] args) {        SwingUtilities.invokeLater(new Runnable() { @Override public void run() {     new Test().createAndShowUI(); }        });    }    private void createAndShowUI() {        Jframe frame = new Jframe("Test");        frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        frame.setResizable(false);        initComponents(frame);        frame.pack();//call pack        printPanelCompPoints(mainPanel);//produces correct coords        frame.setVisible(true);    }    private JPanel mainPanel;    private void initComponents(Jframe frame) {        mainPanel = new JPanel(new BorderLayout());        JPanel centerPanel = new JPanel();        JPanel northPanel = new JPanel();        JPanel southPanel = new JPanel();        JPanel westPanel = new JPanel();        JPanel eastPanel = new JPanel();        centerPanel.add(new JLabel("CENTER"));        northPanel.add(new JLabel("NORTH"));        eastPanel.add(new JLabel("EAST"));        southPanel.add(new JLabel("SOUTH"));        westPanel.add(new JLabel("WEST"));        mainPanel.add(centerPanel, BorderLayout.CENTER);        mainPanel.add(northPanel, BorderLayout.NORTH);        mainPanel.add(southPanel, BorderLayout.SOUTH);        mainPanel.add(eastPanel, BorderLayout.EAST);        mainPanel.add(westPanel, BorderLayout.WEST);       frame.getContentPane().add(mainPanel);       printPanelCompPoints(mainPanel);//produces all 0's    }    private void printPanelCompPoints(JPanel mainPanel) {        for (int i = 0; i < mainPanel.getComponentCount(); i++) { System.out.println(mainPanel.getComponent(i).getX() + ", " + mainPanel.getComponent(i).getY());        }    }}

如您所见,调用

printPanelCompPoints(mainPanel);
in
initComponents(Jframeframe)
会产生全0(因为它们已添加到帧中,但尚未调用`pack())。

0,0

0,0

0,0

0,0

0,0

然而,在

createAndShowUI()
打完电话后
pack()
Jframe
小号实例调用
printPanelCompPoints(mainPanel);
产生正确的合作odrinates:

44,26

0,0

0、52

99、26

0、26



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号