使用Swing UI设计器Intellij在JTabbedPane中创建一个JTable



我正在尝试创建一个具有多个选项卡的框架,每个选项卡都有不同的列表。我使用了带有Intellij的Swing UI设计器来创建";资产";然后在我的主类文件中修改它们。我查阅了一些使用设计器创建JTable的例子,但这些例子不使用多个选项卡,我认为这是我现在的主要问题,因为我不知道如何做到这一点

这是目前的代码。

package client;
import javax.swing.*;
import javax.swing.table.TableModel;
import java.awt.event.*;
public class ATCGUI extends GUI {
private JPanel mainPanel;
private JTabbedPane tabbedPanel;
private JPanel tabbedAirportInfo;
private JScrollPane scrollPane;
private JButton addButtonOut;
private JButton deleteButtonOut;
private JButton addButtonIn;
private JButton deleteButtonIn;
private JTable tableOut;
private JTable tableIn;
private JPanel panelOut;
private JScrollPane tabbedPaneOut;
public ATCGUI(String AirportCode) {
this.add(mainPanel);
String airportID = getID(AirportCode);
TableOut(airportID);
pack();
setVisible(true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
private void TableOut(String airportID){
String[] columnNames = {"Airline", "Destination", "Aircraft"};
Object[][] dataTest = {{"Iberia", "London", "737"}, {"AirEuropa", "Paris", "320"}, {"BritishAirways", "Berlin", "330"}};
JTable TableOut = new JTable(dataTest, columnNames);
setContentPane(panelOut);
}
public static void main(String[] args) {
new ATCGUI("MAD");
}
}

目前,它显示了不同的选项卡,但JTable没有出现在任何选项卡中。我确实确保将JTable放入JScrollPane中。

我对这件事还很陌生,所以也许有什么我错过了,或者只是不知道。

如果没有JTabbedPane代码,将很难建议您可以"修复";在您自己的代码中。

这对于使用具有多个选项卡的JTabbedPane是一个很好的参考:

https://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html

JTabbedPane如何与您的数据一起使用的示例:

package whatever;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
public class MyGui extends JFrame {
private JTabbedPane tPane;
MyGui(String t){
super(t);
this.tPane = new JTabbedPane();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
tPane.addTab("Tab 1", createTab());
tPane.addTab("Tab 2", createTab());
tPane.addTab("Tab 3", createTab());
tPane.addTab("Tab 4", createTab());
this.setContentPane(this.tPane);
this.setSize(400, 400);
this.setVisible(true);
}

public static void main(String[] args) {
new MyGui("My Tabbed App");
}
private JScrollPane createTab(){
String[] columnNames = {"Airline", "Destination", "Aircraft"};
Object[][] dataTest = {{"Iberia", "London", "737"}, {"AirEuropa", "Paris", "320"}, {"BritishAirways", "Berlin", "330"}};
JTable tableOut = new JTable(dataTest, columnNames);
return new JScrollPane(tableOut);
}
}

最新更新