无法将JFileChooser对齐BorderLayout.NORTH的左侧

时间:2014-01-22 13:39:08

标签: java swing jpanel jfilechooser border-layout

我有一个带有JFileChooser和JTextArea的窗口。 JFileChooser位于BorderLayout的NORTH部分。 JTextArea位于BorderLayout的CENTER部分。

我想将左边的所有JFileChooser对齐,但它不会像我想的那样移动并保持中心。 此外,我希望我的JFileChooser占据我窗户的所有长度。

修改

以下是主要代码

public class MainServer 
{
    public static void main(String[] args)
    {
        ServerBoard frame=new ServerBoard(1000, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
     }
}

这是窗口代码

public class ServerBoard extends JFrame
{
    private JButton startserver;
    private JButton senddata;   
    private JButton sendgps;
    private JTextArea messagearea;

    public ServerBoard(int l, int h)
    {
        super("ServerBoard");
        this.initialize();
        this.setSize(l,h);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setVisible(true);
    }

    public void initialize()
    {
        // Define a panel
        Container c=this.getContentPane();

        this.messagearea=new JTextArea(40,60);      

        c.add(this.createNorth(), BorderLayout.NORTH);
        c.add(messagearea, BorderLayout.CENTER);
    }

    public JPanel createNorth()
    {
        JPanel panelnorth=new JPanel();

        JToolBar toolbarnorth=new JToolBar();
        panelnorth.add(toolbarnorth);

        this.startserver=new JButton("START SERVER");
        startserver.addActionListener(new ServerBoardListener());
        toolbarnorth.add(startserver);

        this.senddata=new JButton("SEND DATA");
        senddata.addActionListener(new ServerBoardListener());
        toolbarnorth.add(senddata);

        this.sendgps=new JButton("SEND GPS FRAME");
        sendgps.addActionListener(new ServerBoardListener());
        toolbarnorth.add(sendgps);

        return panelnorth;  
    }
}

这是我的窗口

enter image description here

我真的很想使用这个JFileChooser。你能帮帮我吗?

事先感谢你的答案。

1 个答案:

答案 0 :(得分:2)

简单地嵌套你的JPanels。创建一个名为northPanel的新JPanel,它使用BorderLayout,并将其添加到BorderLayout.NORTH位置的主窗口,然后将JFIleChooser添加到其BorderLayout.WEST位置的此northPanel JPanel。

选项2:给northPanel一个沿着线轴定向的BoxLayout,添加JFileChooser,并添加胶水。