这个JavaGUI可以简化吗?
我正在编写一个Java GUI应用程序,如下所示:这个JavaGUI可以简化吗?,java,swing,user-interface,Java,Swing,User Interface,我正在编写一个Java GUI应用程序,如下所示: JPanel main = new JPanel(new GridLayout(1, 1)); JPanel buttonPanel = new JPanel(); buttonPanel.add(button); main.add(buttonPanel) 我想在网格中添加一个按钮,但我希望它位于网格面板的中心。 将按钮添加到另一个JPanel可以使它位于网格的中心 有没有更简单的方法 例如: JPanel main = new JPane
JPanel main = new JPanel(new GridLayout(1, 1));
JPanel buttonPanel = new JPanel();
buttonPanel.add(button);
main.add(buttonPanel)
我想在网格中添加一个按钮,但我希望它位于网格面板的中心。
将按钮添加到另一个JPanel
可以使它位于网格的中心
有没有更简单的方法
例如:
JPanel main = new JPanel(new GridLayout(1, 1));
JPanel buttonPanel = JPanel();
main.add(new JPanel().add(button));
这对我不起作用
谢谢:)您需要将main添加到框架中:
add(main.add(new JPanel().add(button)));
这对我来说很好:
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFrameClass extends JFrame
{
public MyFrameClass(){
JPanel main = new JPanel(new GridLayout(1, 1));
JButton button = new JButton();
add(main.add(new JPanel().add(button)));
setSize(800,600);
setVisible(true);
}
public static void main (String [] args)
{
new MyFrameClass();
}
}
我同意其他评论者的观点,即减少代码行数可能并不像您认为的那样必要:一般来说,您的目标应该是降低代码复杂性,而不是代码长度,而最小化代码长度的努力通常会导致代码更复杂/更难理解,而不是更少 也就是说,应用基本的OO原则可以使您在保持(如果不是增加)代码清晰度的同时缩短代码:
class CenteredContentPanel extends JPanel {
CenteredContentPanel(JComponent addTo){
this.setLayout(new GridLayout(1,1));
JPanel parentPanel = new JPanel();
parentPanel.add(addTo);
this.add(parentPanel);
}
}
现在,您可以使用一行代码将任意数量的代码添加到父容器中:
JPanel main = new JPanel();
main.add(new CenteredContentPanel(button));
//repeat above line to add as many "centered" components as you need to
(代码未经测试,因为我目前没有访问IDE的权限,但您可以了解要点…为什么要缩短它?任何更短的代码和代码的用途都可能变得不清楚。我希望避免使用许多行为网格上的每个元素创建单独的JPanel(),例如,我的应用程序需要一个7x3的网格,如果a希望将所有元素居中,那么我需要为每个元素创建单独的JPanel()。我认为有很多代码,这是我的问题,有没有办法避免一个接一个地创建,或者代码约定说我需要这样做?非常感谢,这项工作非常完美。OO的力量。我会考虑减少线不是每次都需要的。再次感谢你,这对我来说已经解决了。