gpt4 book ai didi

java - 如何删除 jtextfield、jbutton 和 raisebevel 边框之间的空间

转载 作者:行者123 更新时间:2023-12-01 10:34:55 25 4
gpt4 key购买 nike

我想删除添加在 raisedbevel 边框内的 JButtonJTextfield 之间的空白或边框我尝试了这段代码,但它们之间仍然存在差距

import java.awt.*; 
import javax.swing.*;
import javax.swing.border.Border;

public class Main {
public static void main(String args[]) {
JFrame f = new JFrame("JPasswordField ");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p=new JPanel(),pp=new JPanel();
JButton b=new JButton("o");

b.setBorder(null);
b.setBorderPainted(false);
b.setMargin(new Insets(0,0,0,0));
Border emptyBorder = BorderFactory.createEmptyBorder();
b.setBorder(emptyBorder);
Border raisedbevel=BorderFactory.createRaisedBevelBorder();


pp.setBorder(raisedbevel);
JTextField t=new JTextField(20);
t .setBorder(javax.swing.BorderFactory.createEmptyBorder());
t.setPreferredSize(new Dimension(100, 25));
b.setPreferredSize(new Dimension(25, 25));
pp.setBackground(Color.black);
pp.add(t);

pp.add(b);


p.add(pp);
f.add(p);
f.setSize(400, 100);
f.setVisible(true);


}
}

我想完全删除那个黑色空间谢谢。

最佳答案

JPanel 默认情况下使用 FlowLayout,默认情况下垂直和水平方向的填充量为 5

如果您想继续使用FlowLayout,您可以使用以下内容指定所需的填充...

pp = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0);

或使用其他布局管理器,例如GridBagLayout

我也不鼓励您一般使用 setPreferredSize 并依赖 Border 和布局来影响组件如何超出其默认首选大小“额外”大小尺寸。

看看Laying Out Components Within a Container , How to Use FlowLayout , How to Use GridBagLayoutShould I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?

关于java - 如何删除 jtextfield、jbutton 和 raisebevel 边框之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34822972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com