web-dev-qa-db-ja.com

JFrameの特定の場所(x、y)にオブジェクトを配置するにはどうすればよいですか?

JFrameの特定の場所(x、y)にオブジェクトを配置するにはどうすればよいですか?

6
whiteberryapps

ここで 絶対位置決めチュートリアル を見つけます。 LayoutManagers を使用するよりも、このアプローチが推奨されない理由について、注意深くお読みください。

たとえばJButtonをJPanelに追加するには、次を使用できます。

JButton button = new JButton("Click Me");
button.setBounds(5, 5, 50, 30);
panel.add(button);

ここでこのサンプルプログラムを試してください:

import Java.awt.*;
import javax.swing.*;

public class AbsoluteLayoutExample
{
    private void displayGUI()
    {
        JFrame frame = new JFrame("Absolute Layout Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel contentPane = new JPanel();
        contentPane.setOpaque(true);
        contentPane.setBackground(Color.WHITE);
        contentPane.setLayout(null);

        JLabel label = new JLabel(
            "This JPanel uses Absolute Positioning"
                                    , JLabel.CENTER);
        label.setSize(300, 30);
        label.setLocation(5, 5);

        JButton button = new JButton("USELESS");
        button.setSize(100, 30);
        button.setLocation(95, 45);

        contentPane.add(label);
        contentPane.add(button);

        frame.setContentPane(contentPane);
        frame.setSize(310, 125);
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String... args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                new AbsoluteLayoutExample().displayGUI();
            }
        });
    }
}

Absolute Positioning Output

10
nIcE cOw

これら2つを試してください...互いに組み合わせて...

setLocation()およびsetBounds()

2005年にNetBeansチームによって開発されたGroupLayoutを使用する方がさらに優れています。WindowsBuilderProは、JavaでGUIを構築するための優れたツールです。

3

この絶対レイアウトコードサンプルを確認してください。

絶対レイアウトデモ