Я вижу, что вы используете конструктор GUI. Я настоятельно рекомендую создать свой графический интерфейс «вручную», а в этом случае ваш код будет IMO гораздо яснее (я не говорю, что все дизайнеры GUI производят плохой код, но его почти всегда трудно читать, и его редактирование будет трудно без использования тот же дизайнер GUI). Как только вам будет удобно работать с графическим интерфейсом, попробуйте GUI-дизайнер и посмотрите, что делает вас более комфортным.
См: http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html
В вашем случае, вы можете создать BorderLayout, и в «южной» вашей панели/кадр, который вы можете разместить панель с FlowLayout совместив его компоненты влево. Затем добавьте свою кнопку на панель с помощью FlowLayout.
Немного демо:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
public class LayoutDemo extends JFrame {
LayoutDemo() {
super("LayoutDemo");
super.setSize(400, 200);
super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
createGUI();
super.setVisible(true);
}
private void createGUI() {
// set the layout of this frame
super.setLayout(new BorderLayout());
// create a panel to put the button on
final JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
// create a text area to put in the center
final JTextArea textArea = new JTextArea();
// create the search button
final JButton searchButton = new JButton("search");
// add a listener to the button that add some text to the text area
searchButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
textArea.setText(textArea.getText() + "pressed search on " + (new Date()) + "\n");
}
});
// add the button to the bottom panel
bottomPanel.add(searchButton);
// wrap a scroll-pane around the text area and place it on the center of this frame
super.add(new JScrollPane(textArea), BorderLayout.CENTER);
// put the bottom panel (containing the button) on the 'south' of this frame
super.add(bottomPanel, BorderLayout.SOUTH);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new LayoutDemo();
}
});
}
}
производит:
alt text http://img689.imageshack.us/img689/5874/guiq.png
EDIT
И переместить кнопку немного больше вверх, используйте конструктор new FlowLayout(FlowLayout.LEFT, int hgap, int vgap)
, где hgap
- промежуток (в пикселях) между левым и правым компонентами и vgap
- это промежуток (в пикселях) между верхним и нижним компонентами.
Try:
final JPanel bottomPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 10));
Обратите внимание, что пространство между кнопкой и текстовой области также немного увеличивается!
+1 для видео и описания. отличная идея! желайте, чтобы больше людей делали что-то подобное. –
Один из последних предложений: * «Мне просто нужно, чтобы ты сейчас» * заставил меня усмехнуться. :) –
@Bart K: lolx этого не понял, просто подумал, что это хорошая песня!Хотя он был оснащен видео, не так ли? Я нуждаюсь в тебе сейчас, чтобы помочь! lolz – James1