搜索栏是'search_bar',我正在尝试使用'j_panel.add(search_bar,BorderLayout.WEST);将其移到框的左侧。但它不会从中间移动。关于如何做到这一点的任何想法?感谢
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
public class Main {
public static void main(String args[]) {
JFrame jfrm = new JFrame("Test");
jfrm.setSize(1024, 600);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jfrm.setResizable(false);
JTextField search_bar = new JTextField("Search...", 25);
search_bar.setPreferredSize(new Dimension(1,35));
JTextArea body = new JTextArea(32,83);
body.setPreferredSize(new Dimension());
body.setEditable(false);
JButton search_button = new JButton("Search");
JPanel j_panel = new JPanel();
j_panel.setLayout(new FlowLayout());
j_panel.add(search_bar, BorderLayout.WEST);
j_panel.add(search_button, null);
j_panel.add(body, BorderLayout.EAST);
j_panel.setBackground(Color.gray);
search_button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
final String text = search_bar.getText();
body.setText(text);
}
});
jfrm.setContentPane(j_panel);
jfrm.setVisible(true);
}
}
答案 0 :(得分:2)
j_panel.setLayout(new FlowLayout()); j_panel.add(search_bar, BorderLayout.WEST);
BorderLayout.WEST
不适用于FlowLayout
。如果要使用BorderLayout,请使用一个而不是FlowLayout。
答案 1 :(得分:0)
使用FlowLayout
时,您无法完全按照自己喜欢的方式定位组件
通过使用BorderLayout
,您必须只有5个组件,因为BorderLayout
最多可以处理5个组件。