-2

我的节目是关于超市的。我想将JButton“b1”定位在JLabel“l1”下方以及JTextField“jt1”下方。我希望JButton“b1”也位于中心但低于“l1”和“jt1”。以下是delivery()我的程序的方法:

public static void delivery()
{
    final JFrame f1 = new JFrame("Name");
    f1.setVisible(true);
    f1.setSize(600,200);
    f1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    f1.setLocation(700,450);

    JPanel p1 = new JPanel();

    final JLabel l1 = new JLabel("Enter your name: ");

    final JTextField jt1 = new JTextField(20);

    JButton b1 = new JButton("Ok");
    b1.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            input1 = jt1.getText();
            f1.setVisible(false);
        }
    });

    p1.add(b1);
    p1.add(l1);
    p1.add(jt1);
    f1.add(p1);


    final JFrame f2 = new JFrame("Address");
    f2.setVisible(true);
    f2.setSize(600,200);
    f2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    f2.setLocation(700,450);

    JPanel p2 = new JPanel();

    final JLabel l2 = new JLabel("Enter your address: ");

    final JTextField jt2 = new JTextField(20);

    JButton b2 = new JButton("Ok");
    b2.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            input2 = jt2.getText();
            f2.setVisible(false);
        }
    });

    p2.add(b2);
    p2.add(l2);
    p2.add(jt2);
    f2.add(p2);

    }
}
4

2 回答 2

3

您可以使用多个 JPanel 来接近您想要的:

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class MyGui {

    public static void delivery()
    {
        JFrame f1 = new JFrame("Name");
        f1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f1.setBounds(200, 100, 500, 300);
        Container cpane = f1.getContentPane();

        JPanel p1 = new JPanel();
        p1.setLayout(new BoxLayout(p1, BoxLayout.LINE_AXIS));  //Horizontal

        JLabel l1 = new JLabel("Enter your name: ");
        JTextField jt1 = new JTextField(20);
        jt1.setMaximumSize( jt1.getPreferredSize() );

        p1.add(l1);
        p1.add(jt1);

        JPanel p2 = new JPanel(); 
        p2.setLayout(new BoxLayout(p2, BoxLayout.PAGE_AXIS)); //Vertical

        p2.add(p1);

        JButton b1 = new JButton("Ok");
        p2.add(b1);
        cpane.add(p2);

        f1.setVisible(true);

    }
}



public class SwingProg {
    private static void createAndShowGUI() {
        MyGui.delivery();
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}
于 2013-07-01T09:50:27.673 回答
2

使用 GridBagLayout 类。它用于使用约束进行定制设计。

于 2013-07-01T10:43:03.197 回答