gpt4 book ai didi

Java Swing 未正确显示

转载 作者:行者123 更新时间:2023-12-01 13:16:15 25 4
gpt4 key购买 nike

我遇到了问题...我正在尝试将组件放在面板上...但它们也没有按照我期望的方式显示。

这是一个例子...

这是代码:

package UserInterface;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.*;
/**
*
* @author
*/
public class FlightPrice extends JPanel {
private JPanel buttonPane;
private JPanel dataPane;
private JLabel outbound;
private JLabel outDate;
private JTable departFlights;
private JLabel inbound;
private JLabel inDate;
private JTable returnFlights;
private JLabel flightCost;
private JTable priceTable;
private JButton purchase;
private JButton goBack;
private JButton cancel;

public FlightPrice()
{
initComponents();
}

private void initComponents()
{
BorderLayout borderLayout = new BorderLayout();
//iniyliazing the componenets\\
Object[][] data1 = {{"239", "United", "8:00 AM MCO", "9:05 AM ATL", "767", "25F"}};
String[] name = {"", "",};
Object [][] data2 = {{"612", "United", "4:35 PM ATL", "5:45 PM MCO", "A320", "19A"}};
String [] name2 = {"",""};
Object [][] data3 = {{"Adult", "1", "546.00", "56.00", "602.00"}};
String [] name3 = {"",""};

buttonPane = new JPanel();
dataPane = new JPanel(new GridBagLayout());
outbound = new JLabel("Depart: Orlando TO Atlanta");
outDate = new JLabel("Date: March 1, 2014");
departFlights = new JTable(data1, name);
inbound = new JLabel("Return: Atlanta TO Orlando");
inDate = new JLabel("Date: March 19, 2014");
returnFlights = new JTable(data2, name2);
flightCost = new JLabel("Air Fare Cost");
priceTable = new JTable(data3, name3);
purchase = new JButton("Purchase");
goBack = new JButton("goBack");
cancel = new JButton("Cancel");

//adds componetns to the panel\\

GridBagConstraints c = new GridBagConstraints();
//adding info into the tables\\
c.fill = GridBagConstraints.HORIZONTAL;

c.gridx = 0;
c.gridx = 0;
dataPane.add(outbound, c);
c.gridx = 0;
c.gridy = 1;
dataPane.add(outDate, c);
c.gridx = 0;
c.gridy = 2;
dataPane.add(departFlights,c);
c.gridx = 0;
c.gridy = 3;
dataPane.add(inbound, c);
c.gridx = 0;
c.gridy = 4;
dataPane.add(inDate, c);
c.gridx = 0;
c.gridy = 5;
dataPane.add(returnFlights, c);
c.gridx = 0;
c.gridy = 6;
dataPane.add(flightCost, c);
c.gridx = 0;
c.gridy = 7;
dataPane.add(flightCost, c);

// adding components to buttonPane\\
buttonPane.add(goBack);
buttonPane.add(purchase);
buttonPane.add(cancel);


//adding panels to the JFrame\\
add(dataPane);
add(buttonPane, BorderLayout.SOUTH);

}
}

这是一个显示扩展 JPanel 的类。它保存添加到数据 Pane 的所有组件。然后,数据 Pane 将添加到主 Pane 中。有帮助吗?

http://imageshack.com/a/img198/8795/rqnj.png

它应该是什么样子:

http://imageshack.com/a/img585/7088/83j9.png

最佳答案

您说 BorderLayout borderLayout = new BorderLayout(); 但您从未使用 this.setLayout(borderLayout) 之类的方法将该布局传递给面板。

此外,当您add(dataPane)时,我建议您应该指定位置,因为您打算使用 BorderLayout。尽管 CENTER 是默认值,但我建议使用 add(dataPane, BorderLayout.CENTER)

关于Java Swing 未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22442118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com