繁体   English   中英

如何使GridBagLayout定位到左上角

[英]How to get GridBagLayout to position top left corner

我试图让gridbaglayout从我的JFrame的左上角开始。 我试图在JFrame中使用面板来解决此问题。 它不起作用,它给我的结果与以前相同。 我将面板放置在左上角,该面板从中间开始,一直一直离开。 GUI问题图片这是我的课程和代码。

public class GraphMatchApp extends JApplet implements ActionListener
{
    private JFrame mFrame;
    private JPanel mBusinessPanel;
    private JPanel mItemsPanel;
    private JTabbedPane mTabbedPane;
    private JPanel mFramePanel;
    GridBagConstraints  mGridBagConstaints;


    public GraphMatchApp()
    {
        prepairMainFrame();
        prepairBusinessPanel();
        mGridBagConstaints.fill = GridBagConstraints.HORIZONTAL;
        mGridBagConstaints.weightx = 0.5;
        mGridBagConstaints.gridx = 0;
        mGridBagConstaints.gridy = 0;
        mGridBagConstaints.anchor = GridBagConstraints.FIRST_LINE_START;
        mFramePanel.add(mBusinessPanel,mGridBagConstaints);
        mFrame.setVisible(true);
    }
    public void prepairMainFrame()
    {
        mFrame = new JFrame();
        mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mFrame.setTitle("Test");

        mFrame.setSize(400,200);
        mFramePanel = new JPanel();
        mFramePanel.setLayout(new GridBagLayout());
        mFrame.add(mFramePanel, BorderLayout.LINE_START);
        mGridBagConstaints = new GridBagConstraints();
    }
    public void prepairBusinessPanel()
    {
        mBusinessPanel = new JPanel();
        Border border = BorderFactory.createEtchedBorder();
        border = BorderFactory.createTitledBorder(border,"What is your ?");
        mBusinessPanel.setBorder(border);
        JRadioButton logisticsButton = new JRadioButton("Logistics");
        logisticsButton.setMnemonic(KeyEvent.VK_L);
        logisticsButton.setActionCommand("SelectionLogistics");
        logisticsButton.setSelected(false);

        JRadioButton healthCareButton = new JRadioButton("Health care");
        healthCareButton.setMnemonic(KeyEvent.VK_H);
        healthCareButton.setActionCommand("SelectionHealthCare");
        healthCareButton.setSelected(false);

        JRadioButton transportationButton = new JRadioButton("Transp");
        transportationButton.setMnemonic(KeyEvent.VK_T);
        transportationButton.setActionCommand("SelectionTransportation");
        transportationButton.setSelected(false);

        ButtonGroup group = new ButtonGroup();
        group.add(logisticsButton);
        group.add(healthCareButton);
        group.add(transportationButton);

        logisticsButton.addActionListener(this);
        healthCareButton.addActionListener(this);
        transportationButton.addActionListener(this);

        mBusinessPanel.add(logisticsButton);
        mBusinessPanel.add(healthCareButton);
        mBusinessPanel.add(transportationButton);
    }
    public static void main( String[] args )
    {
        new GraphMatchApp();
    }

在构造函数中,设置mGridBagConstaints.weighty = 0.5;

这样,面板仅占用框架可用空间的一半。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM