Как добавить две панели в один JFrame, когда каждая панель находится в Gridlayout? - PullRequest
0 голосов
/ 22 октября 2018

Я проделал тонну копаний, и я просто не могу понять, что я делаю здесь неправильно.Я создаю один кадр и пытаюсь добавить к нему две сеточные панели.Каждая панель настроена с разметкой сетки из 1 строки и 3 столбцов.

Но вот что я вижу, когда запускаю ее: Screenshot

Я знаю, что мне не хватает чего-то простого, ноМне трудно понять, что именно.Извините за этот вопрос, но сейчас я в растерянности.Любая помощь будет принята с благодарностью!

public class MadewellSalesTaxWindow  extends JFrame
{
private JFrame frame; // the frame
private JPanel panel1; //top panel
private JPanel panel2; //bottom panel
private JLabel messageLabel; // label right of field
private JTextField TaxTextField; // label for text field
private JButton calcCountyButton; // these are the button names
private JButton calcStateButton;
private JButton calcTotalButton;
private final int WINDOW_WIDTH = 500;  // window width
private final int WINDOW_HEIGHT = 150; // window height
private final double STATE_TAX = 0.065;
private final double COUNTY_TAX = 0.03;
String pattern = "###,###,###,###.##";
DecimalFormat decimalFormat = new DecimalFormat(pattern); // output formatting

public MadewellSalesTaxWindow()
{
    // window title
    setTitle("Sales Tax Calculator");

    // window size
    setSize(WINDOW_WIDTH, WINDOW_HEIGHT);

    // clarify what occurs upon window closing
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // call frame constructor
    frame = new JFrame();

    // calls the function that builds the panels
    buildPanel();

    // adds the panels to the frame
    add(panel1);
    add(panel2);

    // displays the window (very important)
   setVisible(true);
}

private void buildPanel()
{
    // this label gives the user instructions
    messageLabel = new JLabel("Enter total sales for the month: $");

    // 10 characters should be enough for monthly sales unless the company is massive
    TaxTextField = new JTextField(10);

    // creates the buttons
    calcCountyButton = new JButton("Calculate County Tax");
    calcStateButton = new JButton("Calculate State Tax");
    calcTotalButton = new JButton("Calculate Total Sales Tax");


    // adds action listeners to each of the buttons
    calcCountyButton.addActionListener(new CountyButtonListener());
    calcStateButton.addActionListener(new StateButtonListener());
    calcTotalButton.addActionListener(new TotalButtonListener());

    // create 2 new panels
    panel1 = new JPanel();
    panel2 = new JPanel();

    // add the appropriate elements to the top panel and the bottom panel
    panel1.add(messageLabel);
    panel1.add(TaxTextField);
    panel2.add(calcCountyButton);
    panel2.add(calcStateButton);
    panel2.add(calcTotalButton);

    // set the layouts for the panels so that they display correctly
    panel1.setLayout(new GridLayout(1,3)); 
    panel2.setLayout(new GridLayout(1,3)); 
}

1 Ответ

0 голосов
/ 23 октября 2018

См. Две панели в одном JFrame?

В заключение, вашему фрейму нужна компоновка для размещения двух панелей.

Добавить

setLayout(new GridLayout(2,1));

конструктору.

...