Java swt或swing中的边框布局
我想安排组件如图所示。我可以使用gridbaglayout来实现这一点,但我想使用borderlayout来实现这一点。我试过了,但没能达到我想要的。所以请带我到这里。 这里的黑色矩形是JPanel、Button等组件Java swt或swing中的边框布局,java,swing,layout,swt,border-layout,Java,Swing,Layout,Swt,Border Layout,我想安排组件如图所示。我可以使用gridbaglayout来实现这一点,但我想使用borderlayout来实现这一点。我试过了,但没能达到我想要的。所以请带我到这里。 这里的黑色矩形是JPanel、Button等组件 边框布局不是这样的。这是边框布局示意图: 您将无法将东部布局放置到右上角-北部将始终浮动到右侧 编辑:显示我使用Swing或AWT-back已经有多长时间了。当我使用Swing或AWT-back时,它是东、北、西、南和中。边界布局不是这样工作的。这是边框布局示意图: 您将无法将东
边框布局不是这样的。这是边框布局示意图: 您将无法将东部布局放置到右上角-北部将始终浮动到右侧
编辑:显示我使用Swing或AWT-back已经有多长时间了。当我使用Swing或AWT-back时,它是东、北、西、南和中。边界布局不是这样工作的。这是边框布局示意图: 您将无法将东部布局放置到右上角-北部将始终浮动到右侧
编辑:显示我使用Swing或AWT-back已有多长时间了。当我使用Swing或AWT-back时,它是东、北、西、南和中。如果你只想使用BorderLayout,你需要使用2个BorderLayout。如果不能使用2个布局,那么就只能使用GridBagLayout。 这是我所说的一个例子:
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Test {
protected void initUI() {
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new BorderLayout());
JPanel panel2 = new JPanel(new BorderLayout());
panel2.add(new JButton("NORTH"), BorderLayout.NORTH);
panel2.add(new JButton("CENTER"));
panel.add(panel2);
panel.add(new JButton("SOUTH"), BorderLayout.SOUTH);
panel.add(new JButton("EAST"), BorderLayout.EAST);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Test().initUI();
}
});
}
}
如果只想使用BorderLayout,则需要使用2 BorderLayout。如果不能使用2个布局,那么就只能使用GridBagLayout。 这是我所说的一个例子:
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class Test {
protected void initUI() {
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel(new BorderLayout());
JPanel panel2 = new JPanel(new BorderLayout());
panel2.add(new JButton("NORTH"), BorderLayout.NORTH);
panel2.add(new JButton("CENTER"));
panel.add(panel2);
panel.add(new JButton("SOUTH"), BorderLayout.SOUTH);
panel.add(new JButton("EAST"), BorderLayout.EAST);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Test().initUI();
}
});
}
}
东部、北部、西部、南部和中部仍然是valid@a_horse_with_no_name:它们是有效的,但从Java 1.4开始就不鼓励使用它们,在JDK 1.4版之前声明,不同区域的首选名称是不同的,例如指南针点,BorderLayout.NORTH的顶部区域是我们在示例中使用的常量的更详细版本。我们的示例使用的常量是首选的,因为它们是标准的,使程序能够适应具有不同方向的语言。东、北、西、南和中仍然是valid@a_horse_with_no_name:它们是有效的,尽管在JDK 1.4版之前声明,不同区域的首选名称不同,从指南针的点(例如,顶部区域的BorderLayout.NORTH)到我们在示例中使用的常量的更详细版本。我们的示例使用的常量是首选的,因为它们是标准的,使程序能够适应具有不同方向的语言。@Guillaume Polet:谢谢这个好例子。@Guillaume Polet:谢谢这个好例子。