2014-09-08 3 views
-1

Я пытаюсь получить GridBagLayout, чтобы разместить 4 панели в кадре, по одной панели в каждом квадранте кадра. Я уверен, что я неправильно понимаю что-то основное с менеджером макетов, но я не уверен, что. Вот код, который я для моего GUI:Компоненты, не предназначенные для GridBagLayout

import java.awt.ScrollPane; 
import java.awt.Color; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.FocusEvent; 
import java.awt.event.FocusListener; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import java.awt.Insets; 
import java.awt.GridBagLayout; 
import java.awt.GridBagConstraints; 

import javax.swing.border.*; 
import javax.swing.BorderFactory; 
import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.JTextField; 
import javax.swing.ListSelectionModel; 
import javax.swing.SwingConstants; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.table.TableCellRenderer; 
import javax.swing.table.TableColumn; 

/** 
* GUI to interact with BookList 
*/ 


public class GUI extends JPanel implements ActionListener 
{ 
    //// Main Panel //// 
    //////////////////// 
    private JPanel mainPanel; 


    //// Border //// 
    //////////////// 
    private Border loweredBorder; 


    //// Input Panel //// 
    ///////////////////// 
    private JPanel  inputPanel; 

    private JLabel  titleLabel; 
    private JTextField titleField; 

    private JLabel  authorLabel; 
    private JTextField authorField; 

    private JLabel  genreLabel; 
    private JTextField genreField; 

    private JLabel  priceLabel; 
    private JTextField priceField; 

    private JLabel  reviewLabel; 
    private JTextField reviewField; 

    private JButton addBookButton; 



    //// Search Panel //// 
    ////////////////////// 
    private JPanel  searchPanel; 

    private JLabel  searchLabel; 
    private JTextField searchField; 

    private JButton searchButton; 



    //// Output Panel //// 
    ////////////////////// 
    private JPanel outputPanel; 

    private JLabel titleDisplayLabel; 
    private JLabel titleOutputLabel; 

    private JLabel authorDisplayLabel; 
    private JLabel authorOutputLabel; 

    private JLabel genreDisplayLabel; 
    private JLabel genreOutputLabel; 

    private JLabel priceDisplayLabel; 
    private JLabel priceOutputLabel; 

    private JLabel reviewDisplayLabel; 
    private JLabel reviewOutputLabel; 

    private JButton editBookButton; 
    private JButton deleteBookButton; 



    //// Display Panel //// 
    ////////////////////////// 
    private JPanel displayPanel; 
    private JScrollPane listPanel; 
    private JButton displayButton; 


    //// BookList //// 
    ////////////////// 
    private BookList bl; 



/** 
* Inputs and buttons for interacting with BookList 
*/ 
    public GUI() 
    { 
    // Instantiate a BookList 
    // TODO: Make BookList length a parameter 
    bl = new BookList(5); 

    loweredBorder = BorderFactory.createBevelBorder(BevelBorder.LOWERED); 

    //// Instantiate and configure Main Panel //// 
    //////////////////////////////////////////////// 
    GridBagLayout mainPanelLayout = new GridBagLayout(); 

    this.setLayout(mainPanelLayout); 



    //// Instantiate and configure Input Panel //// 
    /////////////////////////////////////////////// 
    inputPanel = new JPanel(); 
    GridBagLayout inputPanelGridBag = new GridBagLayout(); 
    GridBagConstraints inputPanelCons = new GridBagConstraints(); 

    inputPanelCons.gridx = 0; 
    inputPanelCons.gridy = 0; 
    inputPanelCons.gridheight = 6; 
    inputPanelCons.gridwidth = 2; 
    inputPanelCons.weightx = 0.25; 
    inputPanelCons.weighty = 0.25; 
    inputPanelCons.ipadx = 10; 
    inputPanelCons.ipady = 10; 
    inputPanelCons.anchor = GridBagConstraints.FIRST_LINE_START; 
    inputPanelCons.fill = GridBagConstraints.BOTH; 
    inputPanelCons.insets = new Insets(5, 5, 5, 5); 

    inputPanelGridBag.setConstraints(inputPanel, inputPanelCons); 

    inputPanel.setBorder(
     BorderFactory.createTitledBorder(loweredBorder, 
             "Add/Edit Book")); 

    inputPanel.setLayout(inputPanelGridBag); 


    // Title Input Label 
    titleLabel = new JLabel("Title:", JLabel.TRAILING); 

    GridBagConstraints titleLabelCons = new GridBagConstraints(); 
    titleLabelCons.gridx = 0; 
    titleLabelCons.gridy = 0; 
    titleLabelCons.ipadx = 10; 
    titleLabelCons.ipady = 10; 
    titleLabelCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(titleLabel, titleLabelCons); 

    inputPanel.add(titleLabel); 

    // Title Input Field 
    titleField = new JTextField(16); 
    titleLabel.setLabelFor(titleField); 

    GridBagConstraints titleFieldCons = new GridBagConstraints(); 
    titleFieldCons.gridx = 1; 
    titleFieldCons.gridy = 0; 
    titleFieldCons.ipadx = 10; 
    titleFieldCons.ipady = 10; 
    titleFieldCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(titleField, titleFieldCons); 

    inputPanel.add(titleField); 


    // Author Input Label 
    authorLabel = new JLabel("Author:", JLabel.TRAILING); 

    GridBagConstraints authorLabelCons = new GridBagConstraints(); 
    authorLabelCons.gridx = 0; 
    authorLabelCons.gridy = 1; 
    authorLabelCons.ipadx = 10; 
    authorLabelCons.ipady = 10; 
    authorLabelCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(authorLabel, authorLabelCons); 

    inputPanel.add(authorLabel); 

    // Author Input Field 
    authorField = new JTextField(16); 

    GridBagConstraints authorFieldCons = new GridBagConstraints(); 
    authorFieldCons.gridx = 1; 
    authorFieldCons.gridy = 1; 
    authorFieldCons.ipadx = 10; 
    authorFieldCons.ipady = 10; 
    authorFieldCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(authorField, authorFieldCons); 

    authorLabel.setLabelFor(authorField); 
    inputPanel.add(authorField); 


    // Genre Input Label 
    genreLabel = new JLabel("Genre:", JLabel.TRAILING); 

    GridBagConstraints genreLabelCons = new GridBagConstraints(); 
    genreLabelCons.gridx = 0; 
    genreLabelCons.gridy = 2; 
    genreLabelCons.ipadx = 10; 
    genreLabelCons.ipady = 10; 
    genreLabelCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(genreLabel, genreLabelCons); 

    inputPanel.add(genreLabel); 

    // Genre Input Field 
    genreField = new JTextField(16); 

    GridBagConstraints genreFieldCons = new GridBagConstraints(); 
    genreFieldCons.gridx = 1; 
    genreFieldCons.gridy = 2; 
    genreFieldCons.ipadx = 10; 
    genreFieldCons.ipady = 10; 
    genreFieldCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(genreField, genreFieldCons); 

    genreLabel.setLabelFor(genreField); 
    inputPanel.add(genreField); 


    // Price Input Label 
    priceLabel = new JLabel("Price:", JLabel.TRAILING); 

    GridBagConstraints priceLabelCons = new GridBagConstraints(); 
    priceLabelCons.gridx = 0; 
    priceLabelCons.gridy = 3; 
    priceLabelCons.ipadx = 10; 
    priceLabelCons.ipady = 10; 
    priceLabelCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(priceLabel, priceLabelCons); 

    inputPanel.add(priceLabel); 

    // Price Input Field 
    priceField = new JTextField(16); 

    GridBagConstraints priceFieldCons = new GridBagConstraints(); 
    priceFieldCons.gridx = 1; 
    priceFieldCons.gridy = 3; 
    priceFieldCons.ipadx = 10; 
    priceFieldCons.ipady = 10; 
    priceFieldCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(priceField, priceFieldCons); 

    priceLabel.setLabelFor(priceField); 
    inputPanel.add(priceField); 


    // Review Input Label 
    reviewLabel = new JLabel("Review:", JLabel.TRAILING); 

    GridBagConstraints reviewLabelCons = new GridBagConstraints(); 
    reviewLabelCons.gridx = 0; 
    reviewLabelCons.gridy = 4; 
    reviewLabelCons.ipadx = 10; 
    reviewLabelCons.ipady = 10; 
    reviewLabelCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(reviewLabel, reviewLabelCons); 

    inputPanel.add(reviewLabel); 

    // Review Input Field 
    reviewField = new JTextField(16); 

    GridBagConstraints reviewFieldCons = new GridBagConstraints(); 
    reviewFieldCons.gridx = 1; 
    reviewFieldCons.gridy = 4; 
    reviewFieldCons.ipadx = 10; 
    reviewFieldCons.ipady = 10; 
    reviewFieldCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(reviewField, reviewFieldCons); 

    reviewLabel.setLabelFor(reviewField); 
    inputPanel.add(reviewField); 


    // Add Book Button 
    addBookButton = new JButton("Add"); 

    GridBagConstraints addBookButtonCons = new GridBagConstraints(); 
    addBookButtonCons.gridx = 1; 
    addBookButtonCons.gridy = 5; 
    addBookButtonCons.ipadx = 10; 
    addBookButtonCons.ipady = 10; 
    addBookButtonCons.insets = new Insets(5, 5, 5, 5); 
    inputPanelGridBag.setConstraints(addBookButton, addBookButtonCons); 

    inputPanel.add(addBookButton); 

    // Add Book Button Event Listener 
    addBookButton.addActionListener(this); 

    // Add `inputPanel` to `mainPanel` 
    this.add(inputPanel); 



    //// List Panel instantiation and configuration //// 
    ///////////////////////////////////////////////////// 
    displayPanel = new JPanel(); 

    GridBagLayout displayPanelGridBag = new GridBagLayout(); 
    GridBagConstraints displayPanelCons = new GridBagConstraints(); 

    displayPanelCons.gridx = 0; 
    displayPanelCons.gridy = 1; 
    displayPanelCons.gridheight = 2; 
    displayPanelCons.gridwidth = 1; 
    displayPanelCons.weightx = 0.25; 
    displayPanelCons.weighty = 0.25; 
    displayPanelCons.ipadx = 10; 
    displayPanelCons.ipady = 10; 
    displayPanelCons.anchor = GridBagConstraints.LAST_LINE_START; 
    displayPanelCons.fill = GridBagConstraints.BOTH; 
    displayPanelCons.insets = new Insets(5, 5, 5, 5); 

    displayPanelGridBag.setConstraints(displayPanel, displayPanelCons); 

    displayPanel.setBorder(
     BorderFactory.createTitledBorder(loweredBorder, 
             "Book List")); 

    displayPanel.setLayout(displayPanelGridBag); 


    // Separate panel for ScrollPane 
    listPanel = new JScrollPane(); 

    GridBagConstraints listPanelCons = new GridBagConstraints(); 
    listPanelCons.gridx = 0; 
    listPanelCons.gridy = 0; 
    listPanelCons.ipadx = 10; 
    listPanelCons.ipady = 10; 
    listPanelCons.fill = GridBagConstraints.BOTH; 
    listPanelCons.insets = new Insets(5, 5, 5, 5); 

    displayPanelGridBag.setConstraints(listPanel, listPanelCons); 


    JTable listTable = new JTable(); 

    listTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 

    String[] colHeaders = { "Title", "Author", "Genre", "Price", "Review" }; 
    listTable.setModel(
     new DefaultTableModel(colHeaders, 0) 
     { 
     boolean[] colEditables = { false, 
            false, 
            false, 
            false, 
            false }; 

     public boolean isCellEditable(int row, int col) 
     { 
     return colEditables[ col ]; 
     } 
    }); 

    listPanel.add(listTable); 
    displayPanel.add(listPanel); 


    displayButton = new JButton("Display"); 

    GridBagConstraints displayButtonCons = new GridBagConstraints(); 
    displayButtonCons.gridx = 0; 
    displayButtonCons.gridy = 1; 
    displayButtonCons.ipadx = 10; 
    displayButtonCons.ipady = 10; 
    displayButtonCons.insets = new Insets(5, 5, 5, 5); 

    displayPanelGridBag.setConstraints(displayButton, displayButtonCons); 

    displayButton.addActionListener(this); 

    displayPanel.add(displayButton); 

    this.add(displayPanel); 



    //// Search Panel instantiation and configuration //// 
    ////////////////////////////////////////////////////// 
    searchPanel = new JPanel(); 

    GridBagLayout searchPanelGridBag = new GridBagLayout(); 
    GridBagConstraints searchPanelCons = new GridBagConstraints(); 

    searchPanelCons.gridheight = 2; 
    searchPanelCons.gridwidth = 2; 
    searchPanelCons.weightx = 0.25; 
    searchPanelCons.weighty = 0.25; 
    searchPanelCons.gridx = 1; 
    searchPanelCons.gridy = 0; 
    searchPanelCons.ipadx = 10; 
    searchPanelCons.ipady = 10; 
    searchPanelCons.anchor = GridBagConstraints.FIRST_LINE_END; 
    searchPanelCons.fill = GridBagConstraints.BOTH; 
    searchPanelCons.insets = new Insets(5, 5, 5, 5); 

    searchPanelGridBag.setConstraints(searchPanel, searchPanelCons); 
    searchPanel.setBorder(
     BorderFactory.createTitledBorder(loweredBorder, 
             "Search for Book")); 
    searchPanel.setLayout(searchPanelGridBag); 


    // Search Input Label 
    searchLabel = new JLabel("Search:", JLabel.TRAILING); 

    GridBagConstraints searchLabelCons = new GridBagConstraints(); 
    searchLabelCons.gridx = 0; 
    searchLabelCons.gridy = 0; 
    searchLabelCons.ipadx = 10; 
    searchLabelCons.ipady = 10; 
    searchLabelCons.insets = new Insets(5, 5, 5, 5); 
    searchPanelGridBag.setConstraints(searchLabel, searchLabelCons); 

    searchPanel.add(searchLabel); 


    // Search Input Field 
    searchField = new JTextField(16); 
    searchLabel.setLabelFor(searchField); 

    GridBagConstraints searchFieldCons = new GridBagConstraints(); 
    searchFieldCons.gridx = 1; 
    searchFieldCons.gridy = 0; 
    searchFieldCons.ipadx = 10; 
    searchFieldCons.ipady = 10; 
    searchFieldCons.insets = new Insets(5, 5, 5, 5); 
    searchPanelGridBag.setConstraints(searchField, searchFieldCons); 

    searchPanel.add(searchField); 


    // Search Button 
    searchButton = new JButton("Search"); 
    searchButton.addActionListener(this); 

    GridBagConstraints searchButtonCons = new GridBagConstraints(); 
    searchButtonCons.gridx = 1; 
    searchButtonCons.gridy = 1; 
    searchButtonCons.ipadx = 10; 
    searchButtonCons.ipady = 10; 
    searchFieldCons.insets = new Insets(5, 5, 5, 5); 
    searchPanelGridBag.setConstraints(searchButton, searchButtonCons); 

    searchPanel.add(searchButton); 

    this.add(searchPanel); 



    //// Output Panel instantiation and configuration //// 
    ////////////////////////////////////////////////////// 
    outputPanel = new JPanel(); 

    GridBagLayout outputPanelGridBag = new GridBagLayout(); 
    GridBagConstraints outputPanelCons = new GridBagConstraints(); 

    outputPanelCons.gridx = 1; 
    outputPanelCons.gridy = 1; 
    outputPanelCons.gridheight = 6; 
    outputPanelCons.gridwidth = 2; 
    outputPanelCons.weightx = 0.25; 
    outputPanelCons.weighty = 0.25; 
    outputPanelCons.ipadx = 10; 
    outputPanelCons.ipady = 10; 
    outputPanelCons.anchor = GridBagConstraints.LAST_LINE_END; 
    outputPanelCons.fill = GridBagConstraints.BOTH; 
    outputPanelCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(outputPanel, outputPanelCons); 

    outputPanel.setBorder(
     BorderFactory.createTitledBorder(loweredBorder, 
             "Book Information")); 
    outputPanel.setLayout(outputPanelGridBag); 


    // Title Label 
    titleDisplayLabel = new JLabel("Title:", JLabel.TRAILING); 

    GridBagConstraints titleDisplayCons = new GridBagConstraints(); 
    titleDisplayCons.gridx = 0; 
    titleDisplayCons.gridy = 0; 
    titleDisplayCons.ipadx = 10; 
    titleDisplayCons.ipady = 10; 
    titleDisplayCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(titleDisplayLabel, titleDisplayCons); 

    outputPanel.add(titleDisplayLabel); 


    // Title Output 
    titleOutputLabel = new JLabel("", JLabel.LEADING); 

    GridBagConstraints titleOutputCons = new GridBagConstraints(); 
    titleOutputCons.gridx = 1; 
    titleOutputCons.gridy = 0; 
    titleOutputCons.ipadx = 10; 
    titleOutputCons.ipady = 10; 
    titleOutputCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(titleOutputLabel, titleOutputCons); 

    outputPanel.add(titleOutputLabel); 


    // Author Label 
    authorDisplayLabel = new JLabel("Author:", JLabel.TRAILING); 

    GridBagConstraints authorDisplayCons = new GridBagConstraints(); 
    authorDisplayCons.gridx = 0; 
    authorDisplayCons.gridy = 1; 
    authorDisplayCons.ipadx = 10; 
    authorDisplayCons.ipady = 10; 
    authorDisplayCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(authorDisplayLabel, authorDisplayCons); 

    outputPanel.add(authorDisplayLabel); 


    // Author Output 
    authorOutputLabel = new JLabel("", JLabel.LEADING); 

    GridBagConstraints authorOutputCons = new GridBagConstraints(); 

    authorOutputCons.gridx = 1; 
    authorOutputCons.gridy = 1; 
    authorOutputCons.ipadx = 10; 
    authorOutputCons.ipady = 10; 
    authorOutputCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(authorOutputLabel, authorOutputCons); 

    outputPanel.add(authorOutputLabel); 


    // Genre Label 
    genreDisplayLabel = new JLabel("Genre:", JLabel.TRAILING); 

    GridBagConstraints genreDisplayCons = new GridBagConstraints(); 
    genreDisplayCons.gridx = 0; 
    genreDisplayCons.gridy = 2; 
    genreDisplayCons.ipadx = 10; 
    genreDisplayCons.ipady = 10; 
    genreDisplayCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(genreDisplayLabel, genreDisplayCons); 

    outputPanel.add(genreDisplayLabel); 


    // Genre Output 
    genreOutputLabel = new JLabel("", JLabel.LEADING); 

    GridBagConstraints genreOutputCons = new GridBagConstraints(); 
    genreOutputCons.gridx = 1; 
    genreOutputCons.gridy = 2; 
    genreOutputCons.ipadx = 10; 
    genreOutputCons.ipady = 10; 
    genreOutputCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(genreOutputLabel, genreOutputCons); 

    outputPanel.add(genreOutputLabel); 


    // Price Label 
    priceDisplayLabel = new JLabel("Price:", JLabel.TRAILING); 

    GridBagConstraints priceDisplayCons = new GridBagConstraints(); 
    priceDisplayCons.gridx = 0; 
    priceDisplayCons.gridy = 3; 
    priceDisplayCons.ipadx = 10; 
    priceDisplayCons.ipady = 10; 
    priceDisplayCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(priceDisplayLabel, priceDisplayCons); 

    outputPanel.add(priceDisplayLabel); 


    // Price Output 
    priceOutputLabel = new JLabel("", JLabel.LEADING); 

    GridBagConstraints priceOutputCons = new GridBagConstraints(); 
    priceOutputCons.gridx = 1; 
    priceOutputCons.gridy = 3; 
    priceOutputCons.ipadx = 10; 
    priceOutputCons.ipady = 10; 
    priceOutputCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(priceOutputLabel, priceOutputCons); 

    outputPanel.add(priceOutputLabel); 


    // Review Label 
    reviewDisplayLabel = new JLabel("Review:", JLabel.TRAILING); 

    GridBagConstraints reviewDisplayCons = new GridBagConstraints(); 
    reviewDisplayCons.gridx = 0; 
    reviewDisplayCons.gridy = 4; 
    reviewDisplayCons.ipadx = 10; 
    reviewDisplayCons.ipady = 10; 
    reviewDisplayCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(reviewDisplayLabel, reviewDisplayCons); 

    outputPanel.add(reviewDisplayLabel); 


    // Review Output 
    reviewOutputLabel = new JLabel("", JLabel.LEADING); 

    GridBagConstraints reviewOutputCons = new GridBagConstraints(); 
    reviewOutputCons.gridx = 1; 
    reviewOutputCons.gridy = 4; 
    reviewOutputCons.ipadx = 10; 
    reviewOutputCons.ipady = 10; 
    reviewOutputCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(reviewOutputLabel, reviewOutputCons); 

    outputPanel.add(reviewOutputLabel); 


    // Edit Button 
    editBookButton = new JButton("Edit"); 

    GridBagConstraints editButtonCons = new GridBagConstraints(); 
    editButtonCons.gridx = 0; 
    editButtonCons.gridy = 5; 
    editButtonCons.ipadx = 10; 
    editButtonCons.ipady = 10; 
    editButtonCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(editBookButton, editButtonCons); 

    outputPanel.add(editBookButton); 

    editBookButton.addActionListener(this); 


    // Delete Button 
    deleteBookButton = new JButton("Delete"); 

    GridBagConstraints deleteButtonCons = new GridBagConstraints(); 
    deleteButtonCons.gridx = 1; 
    deleteButtonCons.gridy = 5; 
    deleteButtonCons.ipadx = 10; 
    deleteButtonCons.ipady = 10; 
    deleteButtonCons.insets = new Insets(5, 5, 5, 5); 
    outputPanelGridBag.setConstraints(deleteBookButton, deleteButtonCons); 

    outputPanel.add(deleteBookButton); 

    deleteBookButton.addActionListener(this); 

    this.add(outputPanel); 

    } 

    public void actionPerformed(ActionEvent e) 
    { 

    } 

} 

А вот как окно выглядит, когда я компиляции и запуска приложения:

BookManager

Я знаю, что я ничего не имею крючковатый до отображения данных в JTable в displayPanel, но не должны появляться заголовки?

Если требуется какое-либо разъяснение, дайте мне знать, я буду думать о том, что еще может быть полезно и внести некоторые обновления по мере необходимости.

+0

Вы, serioulsy, ожидаете, что кто-то просмотрит этот беспорядок? Вы должны разделить панели на самостоятельные классы - это уменьшит беспорядок в каждой панели до того, что связано с этой панелью; вы можете затем тестировать каждую панель отдельно. Его будет очевидно, когда он пойдет не так, как только получится. – Durandal

ответ

3

Здесь вы видите таблицу виджетов JScrollPane со столом.

listPanel.add(listTable); 

Заменить

listPanel.setViewportView(listTable); 

Read: JScrollPane.

+0

Благодарим вас –

Смежные вопросы