як я можу додати два JTable в один ряд на JScrollPane, використовуючи параметр setViewPortView (), і встановити розмір таблиць стосовно розміру, присвоєного JscrollPane
Відповіді:
8 для відповіді № 1Як показано тут і тут, нехай кожен таблиця займає власну область прокрутки. Нехай одна панель завжди відображає смужку прокрутки, а інша - ніколи. Тоді нехай обидва смуги прокрутки поділяють загальним BoundedRangeModel
.
3 для відповіді № 2
JScrollPane
може містити лише один JComponent
, але ви можете обернути свої таблиці до JPanel
і додайте його JScrollPane
як і далі:
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class TestFrame extends JFrame{
public TestFrame(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
init();
pack();
setVisible(true);
}
private void init() {
JTable t1 = new JTable(10,5);
JTable t2 = new JTable(15,5);
JPanel p = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.NORTHWEST;
c.insets = new Insets(0,5,0,5);
c.gridy=0;
c.gridx=0;
p.add(t1.getTableHeader(),c);
c.gridx=1;
p.add(t2.getTableHeader(),c);
c.gridx=0;
c.gridy=1;
p.add(t1,c);
c.gridx=1;
p.add(t2,c);
add(new JScrollPane(p));
}
public static void main(String... strings) {
new TestFrame();
}
}
2 для відповіді № 3
Як я можу додати два JTable 's поруч в JScrollPane використовуючи Параметр setViewPortView () і встановити розмір таблиць з повагою до розміру, присвоєного JscrollPane
JScrollPane
призначено гніздо лише одногоJComponent