簡體   English   中英

將對象放在x,y位置JFrame

[英]Put object in x,y position JFrame

我正在嘗試用Java做某事,在Java中我只是將一個對象放在JFrame上特定的x, y坐標上。 我需要知道要使用哪種布局,或者需要做些什么。任何幫助都將是非常有用的。 謝謝

您可以使用null布局來執行此操作,然后在組件上調用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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM