2014-12-02 3 views
0

Моя проблема заключается в том, что при добавлении JTable к панели все остальные компоненты перемещаются в правую сторону около 20% панельного длины, код:JTable изменить положение других компонентов на BoxLayout

JFrame frame = new JFrame("my frame"); 

JPanel panel = new JPanel(); 
BoxLayout layout = new BoxLayout(panel, BoxLayout.PAGE_AXIS); 
panel.setLayout(layout); 

JButton but1 = new JButton("button1"); 
but1.setAligmentX(0); 
panel.add(but1); 

String[] columnNames = {"kolumna 1", "kol 2", "kol3"}; 
JTable itemTable = new JTable(new DefaultTableModel(columnNames, 10)); 
panel.add(new JScrollPane(itemTable)); 

JButton but2 = new JButton("button2"); 
but2.setAligmentX(0); 
panel.add(but2); 

frame.setContentPane(panel); 
frame.setVisible(true); 

и результат является

button1 
TABLEEEEEEE 
TABLEEEEEEE 
TABLEEEEEEE 
TABLEEEEEEE 
    button2 

вместо

button1 
TABLEEEEEE 
TABLEEEEEE 
TABLEEEEEE 
TABLEEEEEE 
button2 

, что я делаю неправильно?

/редактировать

я проверил, что JTextArea хорошо, но JScrollPane и JTable вызвать эту проблему, используется кнопка с .setAligment (0) методом, но тот же результат

+1

Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальная полная проверяемая версия Exa mple) или [SSCCE] (http://www.sscce.org/) (Short, Self Contained, Correct Example). –

ответ

1

попробовать этот код

JButton b1 = new JButton("button1"); 
    String[] columnNames = { "kolumna 1", "kol 2", "kol3" }; 
    JTable itemTable = new JTable(new DefaultTableModel(columnNames, 10)); 
    JScrollPane scrollPane = new JScrollPane(itemTable); 

    JButton b2 = new JButton("button2"); 

    b1.setAlignmentX(Component.LEFT_ALIGNMENT); 
    scrollPane.setAlignmentX(Component.LEFT_ALIGNMENT); 
    b2.setAlignmentX(Component.LEFT_ALIGNMENT); 

    JPanel panel = new JPanel(); 
    BoxLayout layout = new BoxLayout(panel, BoxLayout.Y_AXIS); 
    panel.setLayout(layout); 

    panel.add(b1); 
    panel.add(scrollPane); 
    panel.add(b2); 

Здесь более подробная информация: java BoxLayout panel's alignment

+0

Большое вам спасибо, scrollPane.setAligmentX (0) работал, не могли бы вы exaplain меня, что случилось? – Naix

+0

вам нужно установить выравнивание JScrollPane, а не Jtable :) –