Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何像在Windows Calculator中那样在没有间隙/空间的情况下添加相邻的JButton?_Java_Swing_User Interface_Awt_Layout Manager - Fatal编程技术网

Java 如何像在Windows Calculator中那样在没有间隙/空间的情况下添加相邻的JButton?

Java 如何像在Windows Calculator中那样在没有间隙/空间的情况下添加相邻的JButton?,java,swing,user-interface,awt,layout-manager,Java,Swing,User Interface,Awt,Layout Manager,为了练习,我正在制作一个与Windows10中提供的计算器相同的计算器,但是我无法删除JButtons之间的空格。我正在使用Netbeans designer视图来实现这一点。我曾经尝试将边距设置为0,甚至两个按钮都设置为-2,但每当我调整按钮大小并将其拖动到另一个按钮时,另一个按钮就会自动消失 下面是我想做的屏幕截图: 以下是设计视图: 为保存JButtons的JPanel提供一个GridLayout,一个具有适当行和列的布局(调用使用2个参数的构造函数,同样用于行和列),但不使用更多参数

为了练习,我正在制作一个与Windows10中提供的计算器相同的计算器,但是我无法删除
JButtons
之间的空格。我正在使用Netbeans designer视图来实现这一点。我曾经尝试将边距设置为0,甚至两个按钮都设置为-2,但每当我调整按钮大小并将其拖动到另一个按钮时,另一个按钮就会自动消失

下面是我想做的屏幕截图:

以下是设计视图:

  • 为保存JButtons的JPanel提供一个GridLayout,一个具有适当行和列的布局(调用使用2个参数的构造函数,同样用于行和列),但不使用更多参数——因此布局的水平和垂直间距设置为默认大小0
  • 将您的JButtons添加到此JPanel
  • 添加组件后,请确保
    pack()
    JFrame(或其他顶级窗口)
  • 打包后调用
    setVisible(true)

  • 这就是它的全部内容。

    您可能需要更改按钮边框,因为它们往往有自己的由外观和感觉定义的插图。请参见此。它使用
    ScriptEngine
    计算文本字段中的表达式。要将其更改为您声明的需求,请编辑
    JPanel按钮=新的JPanel(新的GridLayout(4,4,2,2))
    JPanel按钮=新的JPanel(新的网格布局(4,4))。请参阅有关网格布局的文档以了解其工作原理。“我正在使用Netbeans designer视图来完成此操作”-那么不要,这样做不会学到任何东西它在Netbeans中不起作用,每当我通过代码添加内容时,它都不会显示在那里(在设计视图中)Container keysPanel=getContentPane();setLayout(新的GridLayout(4,4,0,0));什么都不发生没有影响“它在netbeans中不工作”提示:添加@MadProgrammer(或任何人,
    @
    很重要)以通知此人新的评论。旁白:我同意你应该停止使用Netbeans Designer视图。不仅你什么也学不到,而且我(举例来说)不会帮助有“D&D GUI designer”问题的人。我不在netbeans中工作,每当我通过代码添加内容时,它都不会显示在那里(在设计视图中)Container keysPanel=getContentPane();setLayout(新的GridLayout(4,4,0,0));不要使用netbeans表单编辑器-它只会混淆问题。开始一个新的简单的老项目并手工编写UI,您将学到更多