有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing如何在java中使对象居中

我想做一个简单的程序,将有一个按钮和多个字段。当我在脑子里计划这件事的时候,我想使用一个网格布局,或者至少一开始是按按钮,因为我正在学习。到目前为止,我的问题是在网格布局中放在哪里,还是在面板、框架或按钮中设置对齐中心

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Normal {
    public static void main(String[] args) {
        JFrame frame = new JFrame("test");
        JButton button = new JButton("why");
        JPanel panel = new JPanel();
        JTextField field= new JTextField();


    //button
    button.setSize(50, 50);

    //Field
    field.setSize(250, 25);

    //Frame
    frame.setSize(500, 500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.add(panel);
    frame.add(field);
    frame.add(button);

        }
}

共 (2) 个答案

  1. # 1 楼答案

    在从JFrame扩展类的方法中,可以简单地设置要添加组件的位置。如果您有一个带有按钮的面板,您可以这样添加它:

    add(panel, BorderLayout.CENTER);
    

    希望这有帮助

  2. # 2 楼答案

    始终在JFrameContainer中添加组件。将Container的布局设置为GridLayout。例如,您可以按如下方式更改代码:

    import java.awt.GridLayout;
    import java.awt.Container;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    
    public class Normal {
        public static void main(String[] args) {
            JFrame frame = new JFrame("test");
            JButton button = new JButton("why");
            JPanel panel = new JPanel();
            JTextField field= new JTextField();
            Container c = frame.getContentPane();
            c.setLayout(new GridLayout(3,1));//Devides the container in 3 rows and 1 column
            c.add(panel);//Add in first row
            c.add(button);//Add in second row
            c.add(field);//Add in third row
            frame.setSize(500, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
    
            }
    }