我想添加JTable到JPanel其布局中null. JPanel包含其他组件.我必须添加JTable适当的位置.
没有空白区域的GUI显得"拥挤".如何在不借助明确设置组件的位置或大小的情况下提供空白区域?
我所说的JLabel-JTextField对是一个JLabel组件,后跟一个JTextField组件,例如"参数1:-----",其中"-----"表示空白的JTextField.
问题是,由于参数名称的长度不同,JLabel的宽度会有所不同,因此JTextField的起点不会垂直对齐.
有没有办法将JLabel垂直对齐到右边,以便后面的JTextField的开头会对齐?谢谢.
是否可以排列摆动组件?组件位于单独的面板中,两者都使用流动布局.这两个面板位于使用网格布局的另一个面板中.

你可以看到有一个微妙的区别,我觉得很烦人.我知道所有的jlabels [蓝色/紫色的矩形都有相同的大小,所以我认为它可能是因为'+'和'*',但我不确定因为第一个的左边两个盒子没有排成一列.
面板
JPanel panel2 = new JPanel(new GridLayout(4, 1));
JPanel panel2a = new JPanel(new FlowLayout());
JPanel panel2b = new JPanel(new FlowLayout());
Run Code Online (Sandbox Code Playgroud)
前两个矩形(紫色)
add1 = new JLabel("", JLabel.CENTER);
add1.setTransferHandler(new TransferHandler("text"));
add1.setBorder(b2);
add2 = new JLabel("", JLabel.CENTER);
add2.setTransferHandler(new TransferHandler("text"));
add2.setBorder(b2);
Run Code Online (Sandbox Code Playgroud)
两个蓝色矩形
textFieldA = new JTextField();
textFieldA.setHorizontalAlignment(JTextField.CENTER);
textFieldA.setEditable(false);
textFieldA.setBorder(new LineBorder(Color.blue));
textFieldM = new JTextField();
textFieldM.setHorizontalAlignment(JTextField.CENTER);
textFieldM.setEditable(false);
textFieldM.setBorder(new LineBorder(Color.blue));
Run Code Online (Sandbox Code Playgroud)
+和*
opA = new JLabel("+", JLabel.CENTER);
opS = new JLabel("*", JLabel.CENTER);
Run Code Online (Sandbox Code Playgroud)
显示矩形大小相同
Dimension d = card1.getPreferredSize();
int width = d.width + 100;
int …Run Code Online (Sandbox Code Playgroud) 我想在我的程序中制作更清晰的代码.所以我试图压缩我的代码来创建按钮:
以前,我需要每次复制一次:
Dimension JButton_Cryption_Size = JButton_Cryption.getPreferredSize();
JButton_Cryption.setBounds(5, 5, JButton_Cryption_Size.width + 50, JButton_Cryption_Size.height);
JButton_Cryption.setFocusPainted(false);
JButton_Cryption.addActionListener(this);
add(JButton_Cryption);
Run Code Online (Sandbox Code Playgroud)
但现在我做了这个方法:(不要注意按钮名称,它们是用于测试)
public JButton JButton_Testing1,
JButton_Testing2,
JButton_3;
private void addJButton(JButton ButtonName, String Name, int x, int y, int width, int height, String ToolTip, boolean FocusedPainted, boolean Opaque, boolean ContentAreaFilled, boolean BorderPainted){
ButtonName = new JButton(Name);
Dimension Button_Size = ButtonName.getPreferredSize();
if(width == 0){
ButtonName.setBounds(x, y, Button_Size.width, height);
}if(height == 0){
ButtonName.setBounds(x, y, width, Button_Size.height);
}if(width == 0 && height == 0){
ButtonName.setBounds(x, y, Button_Size.width, Button_Size.height);
}if(width != …Run Code Online (Sandbox Code Playgroud)