【问题标题】:JPanel and JButton, cannot figure how to layout 2 simple buttonsJPanel 和 JButton,不知道如何布局 2 个简单的按钮
【发布时间】:2013-10-06 16:31:09
【问题描述】:

我从 JPanel 开始,我试图在一个框架上放置 2 个简单的按钮,我能够放置按钮但不能定位它们,这是我的代码:

JFrame frame = new JFrame();
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       

JButton but = new JButton("text");
JButton but2 = new JButton("list");

JPanel panel= new JPanel(new GridLayout(1, 2));
panel.setSize(100, 100);
panel.add(but);
panel.add(but2);    

frame.add(panel);
frame.setVisible(true);

这是我想要的草图:

【问题讨论】:

标签: java swing jpanel jbutton layout-manager


【解决方案1】:

查看布局填充和边框来解决这个问题。

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

class TwoButtonLayout {

    public static void main(String[] args) {
        Runnable r = new Runnable() {

            @Override
            public void run() {
                // adjust numbers to need..
                JPanel panel = new JPanel(new GridLayout(1, 2, 40, 40));
                // adjust numbers to need..
                panel.setBorder(new EmptyBorder(20,30,20,30));
                panel.setBackground(Color.WHITE);

                JButton but = new JButton("text");
                JButton but2 = new JButton("list");

                panel.add(but);
                panel.add(but2);

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

【讨论】:

    猜你喜欢
    • 2017-01-07
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2019-01-13
    相关资源
    最近更新 更多