2013-11-10 3 views
1

У меня есть Jtable, и теперь я хочу иметь JLabel и JTextField и JButton в одной строке над этим Jtable.Java swing Border и Boxlayout

Как это сделать?

до сих пор я не имел это:

final JTableHeader header = table.getTableHeader(); 
    setLayout(new BorderLayout()); 

    add(header, BorderLayout.PAGE_START); 
    add(table, BorderLayout.CENTER); 

теперь я добавил это выше:

ImageIcon leftButtonIcon = createImageIcon("images/add.gif"); 
    JButton addButton = new JButton(leftButtonIcon); 

    JLabel labelF = new JLabel("Filter:"); 
    labelF.setAlignmentX(Component.RIGHT_ALIGNMENT); 

    JTextField eingabeF = new JTextField(); 
    eingabeF.setSize(50, 10); 

, но как это сделать, что исть это: "Фильтр: TextField КНОПКА" и при этом есть таблица?

ответ

0
  1. Добавьте labelF метку, eingabeF текстовое поле и addButton кнопку к экземпляру JPanel с FLowLayout. И добавьте его в область содержимого (которая имеет BorderLayout) с ограничением BorderLayout.PAGE_START. JPanel имеет FlowLayout, как это расположение
  2. по умолчанию Заключите таблицу к экземпляру JScrollPane и затем добавить панель прокрутки в панели содержимого с ограничением BorderLayout.CENTER. Панель прокрутки автоматически помещает заголовок таблицы в верхней части окна просмотра.

    JScrollPane scrollPane = new JScrollPane(table); 
    table.setFillsViewportHeight(true); 
    
+0

, как добавить его в панель контента? my contentpane: final Таблица newContentPane = new Table(); frame.setContentPane (newContentPane); – progNewbie

+0

ну, это компонент frame.getContentPane(). Add (компонент, BorderLayout.CENTER) :) может быть любым компонентом: JPanel/JTable? JScrollPane. Приложите свою таблицу к JScrollPane, как я написал в answe – Sage

+0

Спасибо, это работает. Только один вопрос: я не могу напечатать что-либо в своем текстовом поле, потому что он имеет ширину около 0 px: D Знаете почему? также когда я делаю это: eingabeF.setSize (500, 100); – progNewbie