доходPanel отображается внутри IncomeAndSpendingPanel, но если я переместлю весь код доходаPanel в его собственный класс (как у меня с SpendingPanel и TransactionAdder) и попытаюсь добавить их в IncomeAndSpendingPanel таким образом, чтобы ничего не отображалось. Я просто пытаюсь очистить свой код и разделить его на разные части.
public class IncomeAndSpendingPanel extends JPanel {
private ColorX cx = new ColorX();
DefaultTableModel incomeTableModel;
DefaultTableModel spendingTableModel;
private String[] incomeColumnHeadings = {"Date","Description","Amount"};
private String[] spendingColumnHeadings = {"Date","Description","Amount","Category"};
Border empty = BorderFactory.createEmptyBorder(10, 10, 10, 10);
Border blackLine = BorderFactory.createLineBorder(Color.black);
CompoundBorder line = new CompoundBorder(empty, blackLine);
public IncomeAndSpendingPanel() {
setLayout(new BorderLayout());
add(new TransactionAdder(), BorderLayout.NORTH);
add(new SpendingPanel(), BorderLayout.EAST);
JPanel incomePanel;
Border incomePanelBorder = BorderFactory.createTitledBorder(line, "INCOME");
JTable incomeTransactionInputTable;
incomePanel = new JPanel(new GridLayout());
incomePanel.setBorder(incomePanelBorder);
incomeTableModel = new DefaultTableModel(50, incomeColumnHeadings.length);
incomeTableModel.setColumnIdentifiers(incomeColumnHeadings);
incomeTransactionInputTable = new JTable(incomeTableModel);
incomeTransactionInputTable.getColumnModel().getColumn(0).setPreferredWidth(1);
incomeTransactionInputTable.getColumnModel().getColumn(1).setPreferredWidth(200);
incomeTransactionInputTable.getColumnModel().getColumn(2).setPreferredWidth(10);
incomePanel.add(new JScrollPane(incomeTransactionInputTable));
add(incomePanel, BorderLayout.CENTER);
}
Это класс, который я создал для TransactionAdder, и ничего не отображается, когда я пытаюсь добавить его в IncomeAndSpendingPanel, я пытался создать TransactionAdder TransactionsAdder = new TransactionAdder (); и затем добавление экземпляра TransactionAdder, например,
add(transactionAdder, BorderLayout.NORTH);
Но ничего не отображается на IncomeAndSpendingPanel таким образом, либо
public class TransactionAdder extends JPanel {
DefaultTableModel model3;
DefaultTableModel model4;
private String[] incomeColumnHeadings = {"Date","Description","Amount"};
private String[] spendingColumnHeadings = {"Date","Description","Amount","Category"};
Border empty = BorderFactory.createEmptyBorder(10, 10, 10, 10);
Border blackLine = BorderFactory.createLineBorder(Color.black);
CompoundBorder line = new CompoundBorder(empty, blackLine);
JTable incomeTransactionTable;
JTable spendingTransactionTable;
JPanel transactionAdderPanel;
Border transactionAdderPanelBorder = BorderFactory.createTitledBorder(line, "ADD TRANSACTION");
JScrollPane jScrollPane;
JScrollPane jScrollPane1;
public TransactionAdder() {
transactionAdderPanel = new JPanel(new GridLayout());
transactionAdderPanel.setBorder(transactionAdderPanelBorder);
model3 = new DefaultTableModel(1, incomeColumnHeadings.length);
model3.setColumnIdentifiers(incomeColumnHeadings);
model4 = new DefaultTableModel(1, spendingColumnHeadings.length);
model4.setColumnIdentifiers(spendingColumnHeadings);
transactionAdderPanel.add(new JButton("Add New Income"));
incomeTransactionTable = new JTable(model3);
jScrollPane = new JScrollPane(incomeTransactionTable);
jScrollPane.setPreferredSize(new Dimension(300, 38));
transactionAdderPanel.add(jScrollPane);
transactionAdderPanel.add(new JButton("Add New Spending"));
spendingTransactionTable = new JTable(model4);
jScrollPane1 = new JScrollPane(spendingTransactionTable);
jScrollPane1.setPreferredSize(new Dimension(300, 38));
transactionAdderPanel.add(jScrollPane1);
}
}