У меня проблема с отображением двух панелей в Jframe. Пожалуйста, помогите мне исправить приведенный ниже код

public class quotingtable extends javax.swing.JFrame {
    DefaultTableModel model;
    JTable table;
    JButton SetButton = new JButton("Set Symbol");
    JButton VNStock = new JButton("VNStockChart");
    JButton Global = new JButton("GlobalChart");
    JPanel quotingpanel = new JPanel(new BorderLayout());
    JPanel functionpanel = new JPanel(new BorderLayout());

public void run(){
    model = new DefaultTableModel(col,row);
    quotingpanel.add(table);
    functionpanel.add(BorderLayout.CENTER,SetButton);
    functionpanel.add(BorderLayout.WEST,VNStock);
    functionpanel.add(BorderLayout.EAST,Global);
    table = new JTable(model);

    JScrollPane pane = new JScrollPane(table);
    quotingpanel.add(pane);
    getContentPane().add(BorderLayout.CENTER,functionpanel);
    getContentPane().add(BorderLayout.SOUTH,quotingpanel);
    setSize(800,800);
    setLayout( new FlowLayout());
    setLayout ( new BorderLayout());
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

Любая помощь приветствуется.

0
Duong Bui 27 Июл 2017 в 06:06
1
Удалите setLayout( new FlowLayout()); и setLayout ( new BorderLayout());, которые появляются в конце кода.
 – 
MadProgrammer
27 Июл 2017 в 06:15

1 ответ

Лучший ответ

Удалять:

setLayout( new FlowLayout());
setLayout ( new BorderLayout());

При таком использовании BorderLayout не будут задействованы уже существующие компоненты, поэтому они будут проигнорированы и не будут выкладываться

И подумайте о замене setSize(800,800); на pack();

Вы также можете изменить

getContentPane().add(BorderLayout.CENTER,functionpanel);
getContentPane().add(BorderLayout.SOUTH,quotingpanel);

К

getContentPane().add(functionpanel, BorderLayout.CENTER);
getContentPane().add(quotingpanel, BorderLayout.SOUTH);

Это просто более последовательный и предпочтительный механизм

2
MadProgrammer 27 Июл 2017 в 06:16