Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将对象置于x、y位置JFrame_Java_Swing_Jframe_Coordinates_Layout Manager - Fatal编程技术网

Java 将对象置于x、y位置JFrame

Java 将对象置于x、y位置JFrame,java,swing,jframe,coordinates,layout-manager,Java,Swing,Jframe,Coordinates,Layout Manager,我试图在Java中做一些事情,我只是简单地将一个对象放置在JFrame上特定的x,y坐标处。我需要知道要使用什么布局,或者我需要做什么来做到这一点。。任何帮助都会很好。谢谢您可以使用空布局执行此操作,然后调用组件上的setLocation或setBounds。但一般来说,您不应该这样做,因为这会导致非常不灵活的GUI,在一个平台上看起来很好,在另一个平台上很糟糕,并且很难更新和维护。别这样 本例使用空边框提供“空白”或“绿色”。当然,如果帧中有其他组件,所有这些“特定坐标”会变得更加复杂,但同样

我试图在Java中做一些事情,我只是简单地将一个对象放置在JFrame上特定的x,y坐标处。我需要知道要使用什么布局,或者我需要做什么来做到这一点。。任何帮助都会很好。谢谢

您可以使用空布局执行此操作,然后调用组件上的setLocation或setBounds。但一般来说,您不应该这样做,因为这会导致非常不灵活的GUI,在一个平台上看起来很好,在另一个平台上很糟糕,并且很难更新和维护。别这样

本例使用空边框提供“空白”或“绿色”。当然,如果帧中有其他组件,所有这些“特定坐标”会变得更加复杂,但同样的技术可以用于为特定组件提供空白

请注意,在提供空白时,通常最好将组件包装在面板中,以保留组件的现有边界

import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

class SpecificCoords {

    public static void main(String[] args) {
        final int specificX = 40;
        final int specificY = 20;

        Runnable r = new Runnable() {
            @Override
            public void run() {
                // imagine this is our 'frame'
                JPanel gui = new JPanel(new BorderLayout());
                JTextField tf = new JTextField(10);
                JPanel borderPanel = new JPanel(new GridLayout());
                borderPanel.add(tf);
                borderPanel.setBorder(new EmptyBorder(
                        specificX, specificY, 
                        specificX, specificY));
                borderPanel.setBackground(Color.GREEN);
                gui.add(borderPanel);

                JOptionPane.showMessageDialog(null, gui);
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
        SwingUtilities.invokeLater(r);
    }
}

调整帧大小时会发生什么情况?组件是否应该扩展?当框架缩小到无法显示组件时,会发生什么情况?是否应该截断它、显示滚动条、隐藏它。。?“特定坐标”是否相对于框架左上角?请不要这样做。总有一个选择,就是不要提及这个,我认为这是最好的,当它不能以现实或现实的方式解决问题时。嗯,框架不会重新调整大小,并且只有一个组件。@FISCSTER510:似乎不起作用,没有给我们足够的信息来提供详细的帮助。考虑编辑原始帖子并添加可编译的可运行代码来显示您的问题。