如何解决使用 Swing UI 设计器在 JTabbedPane 中创建 JTable - Intellij
我正在尝试创建一个带有多个选项卡的框架,每个选项卡都有一个不同的列表。我使用带有 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);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。