2013-12-03 4 views
1

У меня есть этот код до сих пор:Перемещение JTable в Java, Swing, FlowLayout

public class Table extends JFrame { 

    JTable table; 

    public Table() 
    { 
     setLayout (new FlowLayout()); //Default layout 

     String[] columnNames = {"Fly model", "Fly kode", 
       "Destination", "Tidspunkt"}; 

     Object[][] data = { 
      {"Boeing 737", "Ab79SO", "Oslo", "22:00"}, 
      {"MD125", "Tb682O", "Stockholm", "15:21"}, 
      {"Boeing 737", "HJ72SR", "Reikjavic", "08:13"}, 
     }; 
     table = new JTable(data, columnNames); 
     table.setPreferredScrollableViewportSize(new Dimension(500, 50)); 
     table.setFillsViewportHeight(true); 
     setVisible(true); 

     JScrollPane scrollPane = new JScrollPane(table); 
     add(scrollPane); 
    } 

    public JTable returnJTable() 
    { 
     setVisible(false); 
     return table; 
    } 
} 

Я не привык использовать FlowLayout, и поэтому я не знаю, как переместить этот объект вокруг в JFrame, что Я использую. Я знаю, что когда вы используете макет null (абсолютный), вы можете использовать setBounds(), чтобы сообщить JFrame, где размещать элементы. Но как это сделать в FlowLayout?

ответ

2

Вы не можете сделать это с помощью FlowLayout. Вы можете добавлять новые компоненты горизонтально или вертикально друг к другу, но вы не можете добавить компонент в определенную позицию. Вы можете попытаться использовать некоторые трюки с пустыми панелями или ярлыками для пробелов до/после JTable, но лучше использовать другой макет.

Попытайтесь использовать BorderLayout, это просто и с помощью этого вы можете разместить свои JTable в разных местах. Для этого прочитайте tutorial.

Или вы можете использовать другие LayoutManager, read о них и выбрать.

1

С FlowLayout вы не можете перемещать объект вокруг. Все объекты помещаются в одну строку.

Попробуйте использовать BorderLayout или GridBagLayout. Here's a visual guide to Layout Managers.

Panel myTable = new Panel(new GridBagLayout()); 
GridBagConstraints c1 = new GridBagConstraints(); 

c1.fill = GridBagConstraints.HORIZONTAL; //area 
c1.ipadx = 0;        //spacing 
c1.ipady = 0;        //spacing 
c1.weightx = 1.0;       //horizontal 
c1.weighty = 1.0;       //vertical 
c1.anchor = GridBagConstraints.CENTER;  //orientation 
c1.insets = new Insets(10,10,10,10);  //padding 
c1.gridx = 0;        //column 
c1.gridy = 0;        //line 
c1.gridheight = 1;       //number of lines 
c1.gridwidth = 1;       //number of columns 

myTable.add(new JScrollPane(table),c1); 

Вы можете переместить свой стол, если вы измените ориентацию.

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

  • Нет связанных вопросов^_^