В настоящее время у меня есть JPanel внутри JPanel, где я хотел бы разместить свой JScrollPane/JTable. У меня возникли проблемы с размещением его там, где я хочу. Я хотел бы, чтобы таблица соответствовала всей ширине JPanel, но занимала столько места, сколько необходимо для вертикального отображения всех динамических данных в таблице.
Это код, который у меня сейчас есть, и на картинке он выглядит так. Синяя область — это вложенная панель для ситуации таблицы/прокрутки. А еще зачем дурацкая серая коробка под столом. Как мне избавиться от этого? Извините за фото, данные конфиденциальны. Спасибо.
JPanel panel = new JPanel();
panel.setBounds(50, 100, 300, 450);
panel.setBackground(Color.blue);
contentPane.add(panel); //contentPane is the outter panel
JScrollPane scrollpane = new JScrollPane(table); //table was created earlier
panel.add(scrollpane,BorderLayout.NORTH);
Пример программы (мне не нужен этот большой прямоугольник под столом)
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class Test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(350,100,1000,800);
JPanel contentPane = new JPanel(new BorderLayout());
frame.setContentPane(contentPane);
JTable table = new JTable(5,5);
JScrollPane scrollpane = new JScrollPane(table);
table.setFillsViewportHeight(true);
contentPane.add(scrollpane,BorderLayout.NORTH);
frame.revalidate();
}
}
JPanel
экземпляраpanel
, но он добавляет компонент с ограничениемBorderLayout
:) - person Sage   schedule 13.11.2013