应该使用哪种布局?

时间:2014-08-14 15:52:39

标签: java

我对JAVA中的整个“如何安排组件”事情有点新意,我无法弄清楚如何实现以下JFrame(我无法发布图像所以我只是把链接) http://oi58.tinypic.com/10qjkpg.jpg http://oi58.tinypic.com/10qjkpg.jpg

我试图尽可能准确地了解我已经做过的事情。 我想了解如何安排绿色部分的建议。 谢谢!

编辑:有些人正确地说,我没有把我所做的代码。这是:

public Frame(){
        this.setTitle("Small application");
        this.setSize(445, 500);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        this.setVisible(true);
        this.setResizable(false);

        JPanel container = new JPanel();
        container.setLayout(new BorderLayout());

        //Title
        JLabel title = new JLabel("Welcome to this application");
        title.setHorizontalAlignment(JLabel.CENTER);
        title.setPreferredSize(new Dimension(200,50));
        title.setFont(new Font("Courrier",Font.BOLD,20));
        container.add(title, BorderLayout.NORTH);

        //Center part
        JPanel centerPart = new JPanel();
        JLabel cell1 = new JLabel("Enter all measurements:");
        cell1.setPreferredSize(new Dimension(150,20));
        JLabel cell2 = new JLabel("Please, select the files...");
        cell2.setPreferredSize(new Dimension(150,20));
        cell2.setBackground(Color.white);
        cell2.setBorder(BorderFactory.createLineBorder(Color.black));
        cell2.setOpaque(true);
        JButton cell3 = new JButton("Browse");
        cell3.setPreferredSize(new Dimension(100,20));
        centerPart.add(cell1);
        centerPart.add(cell2);
        centerPart.add(cell3);
        container.add(centerPart, BorderLayout.CENTER);

        /*
         * I need your help here :)
         * I can't figure out how to put the image and the text next to it
         */ 

        //Bottom part
        JPanel bottom = new JPanel();
        JButton graph = new JButton("Graph");
        JButton exit = new JButton("Exit");
        bottom.add(graph);
        bottom.add(exit);
        container.add(bottom, BorderLayout.SOUTH);

        this.setContentPane(container);
    }

2 个答案:

答案 0 :(得分:1)

对于大多数实际情况,您使用多个嵌套容器,并使用适合每个容器中布局的LayoutManager。

每个LayoutManager都会执行一个特定作业,实际上,您经常需要以不同方式布置UI的不同区域。因此,对于每个区域,请使用单独的Container(例如JPanel)并设置适合您的布局要求的LayoutManager。

初学者的一大障碍似乎是要确定LayoutManagers可以(通常必须)与嵌套容器一起使用。

答案 1 :(得分:0)

尝试使用JPanel

  • 创建JPanel
  • 将您的JPanel放入JFrame
  • 将标签,按钮,文本字段放在新创建的JPanel上。

它应该做的伎俩。这是非常基本的。您应该能够自己完成代码!