Java 如何在JPanel的顶部和底部安排JComponents
我的程序中有三个Java 如何在JPanel的顶部和底部安排JComponents,java,swing,Java,Swing,我的程序中有三个JButtons,两个JLabels和一个JTextField,还有一个JPanel和FlowLayout。我想在JPanel的开头安排三个按钮,其余按钮安排在JPanel的末尾。我需要在三个按钮和最后三个组件之间留出空间,但代码不起作用。有人能帮我吗 代码如下: JPanel panelMenu=new Jpanel(new FlowLayout()) panelMenu.add ( btnOpen ); panelMenu.add ( lblPage ); panelMenu
JButton
s,两个JLabel
s和一个JTextField
,还有一个JPanel
和FlowLayout
。我想在JPanel
的开头安排三个按钮,其余按钮安排在JPanel
的末尾。我需要在三个按钮和最后三个组件之间留出空间,但代码不起作用。有人能帮我吗
代码如下:
JPanel panelMenu=new Jpanel(new FlowLayout())
panelMenu.add ( btnOpen );
panelMenu.add ( lblPage );
panelMenu.add ( txtCurrentPage );
panelMenu.add ( lblTotalPage );
panelMenu.add ( btnBackword );
panelMenu.add ( btnNext );
getContentPanel.add(panelMenu);
该类将组件放置在一行中。要得到你想要的,你可以使用
示例代码:
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class LayoutExamle {
JFrame frame;
JPanel panel;
JButton b1, b2, b3;
JLabel l1, l2;
JTextField t1;
GridBagConstraints constraints;
public LayoutExamle(){
initComp();
}
public void initComp(){
frame = new JFrame("Example");
frame.setLayout(new CardLayout());
panel = new JPanel();
panel.setSize(400, 350);
panel.setLayout(new GridBagLayout());
panel.setBackground(Color.WHITE);
constraints = new GridBagConstraints();
b1 = new JButton("<<");
constraints.gridx = 0;
constraints.gridy = 0;
constraints.gridwidth = 2;
constraints.anchor = GridBagConstraints.NORTHWEST;
constraints.insets = new Insets(12, 43, 0, 0);
panel.add(b1, constraints);
b2 = new JButton("Open");
constraints.gridx = 2;
constraints.gridy = 0;
constraints.gridwidth = 2;
constraints.anchor = GridBagConstraints.NORTHWEST;
constraints.insets = new Insets(12, 18, 0, 0);
panel.add(b2, constraints);
b3 = new JButton(">>");
constraints.gridx = 4;
constraints.gridy = 0;
constraints.anchor = GridBagConstraints.NORTHWEST;
constraints.insets = new Insets(12, 12, 0, 0);
panel.add(b3, constraints);
l1 = new JLabel("jLabel1");
constraints.gridx = 0;
constraints.gridy = 1;
constraints.anchor = GridBagConstraints.NORTHWEST;
constraints.insets = new Insets(234, 43, 12, 0);
panel.add(l1, constraints);
l2 = new JLabel("jLabel1");
l2.setText("jLabel2");
constraints.gridx = 2;
constraints.gridy = 1;
constraints.anchor = GridBagConstraints.NORTHWEST;
constraints.insets = new Insets(234, 18, 12, 0);
panel.add(l2, constraints);
t1 = new JTextField();
constraints.gridx = 4;
constraints.gridy = 1;
constraints.gridwidth = 2;
constraints.ipadx = 130;
constraints.anchor = GridBagConstraints.NORTHWEST;
constraints.insets = new Insets(230, 12, 12, 31);
panel.add(t1, constraints);
frame.add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String[] args) {
new LayoutExamle();
}
}
导入java.awt.CardLayout;
导入java.awt.Color;
导入java.awt.GridBagConstraints;
导入java.awt.GridBagLayout;
导入java.awt.Insets;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
导入javax.swing.JTextField;
公共类布局Examle{
JFrame框架;
JPanel小组;
按钮b1、b2、b3;
JLabel l1,l2;
jtextfieldt1;
网格约束;
公共布局Examle(){
initComp();
}
public void initComp(){
框架=新的JFrame(“示例”);
frame.setLayout(新的CardLayout());
panel=新的JPanel();
面板设置尺寸(400350);
panel.setLayout(新的GridBagLayout());
面板.立根背景(颜色.白色);
约束=新的GridBagConstraints();
b1=新的JButton(“”);
constraints.gridx=4;
constraints.gridy=0;
constraints.anchor=gridbagsconstraints.NORTHWEST;
constraints.insets=新的insets(12,12,0,0);
面板。添加(b3,约束);
l1=新的JLabel(“jLabel1”);
constraints.gridx=0;
constraints.gridy=1;
constraints.anchor=gridbagsconstraints.NORTHWEST;
constraints.insets=新的insets(234,43,12,0);
面板。添加(l1,约束);
l2=新的JLabel(“jLabel1”);
l2.setText(“jLabel2”);
constraints.gridx=2;
constraints.gridy=1;
constraints.anchor=gridbagsconstraints.NORTHWEST;
constraints.insets=新的insets(234,18,12,0);
panel.add(l2,约束);
t1=新的JTextField();
constraints.gridx=4;
constraints.gridy=1;
约束。网格宽度=2;
constraints.ipadx=130;
constraints.anchor=gridbagsconstraints.NORTHWEST;
constraints.insets=新的insets(230,12,12,31);
面板。添加(t1,约束);
框架。添加(面板);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
公共静态void main(字符串[]args){
新布局Examle();
}
}
截图:
一种方法是创建两个面板。然后,您可以将面板添加到默认使用边框布局的框架的内容窗格中:
frame.add(topPanel, BorderLayout.PAGE_START);
frame.add(bottomPanel, BorderLayout.PAGE_END);
本教程是一个正确的起点:@Meshu,这样你就可以接受这个答案,如果它对你有用的话,那么其他人也会觉得这个答案很有帮助。不过,我很高兴能帮助你。