繁体   English   中英

尝试将按钮放在屏幕底部

[英]Trying to put buttons on the bottom of the screen

所以经过一天的学习布局管理器和阅读一些摇摆参考后,这就是我想出的......

import java.awt.*;
import javax.swing.*;

public class Flags {
public static void startup() {
GridLayout Layout = new GridLayout(6,4);
JFrame menu = new JFrame("Flag Menu");
menu.setResizable(false);
menu.setSize(600,400);
JButton tailand = new JButton("Tailand");
JButton norway = new JButton("Norway");
JPanel panel = new JPanel();

panel.setLayout(Layout);
panel.add(norway);
panel.add(tailand);
menu.add(panel);
panel.setBackground(Color.LIGHT_GRAY);
tailand.setBackground(Color.WHITE);
norway.setBackground(Color.WHITE);
menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menu.setLocationRelativeTo(null);
;
menu.setVisible(true);


}
}

问题是我希望我的按钮从左下角开始,并在我想要制作的其他 4 个按钮之间等距。

您“可能”通过多种方式实现这一目标,而解决方案最终将取决于您要实现的目标。

就我个人而言,我会从GridBagLayout开始——虽然不是布局管理器的友好性,但它是迄今为止最灵活的。

简单的菜单

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Flags {

  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      @Override
      public void run() {
        new Flags().startup();
      }
    });
  }

  public static void startup() {
    GridLayout Layout = new GridLayout(6, 4);
    JFrame menu = new JFrame("Flag Menu");
    //  menu.setResizable(false);
    //  menu.setSize(600, 400);
    menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JButton tailand = new JButton("Tailand");
    JButton norway = new JButton("Norway");
    JPanel panel = new JPanel(new GridBagLayout());
    GridBagConstraints gbc = new GridBagConstraints();

    gbc.weighty = 1;
    gbc.weightx = 1;
    gbc.fill = GridBagConstraints.HORIZONTAL;
    gbc.gridwidth = GridBagConstraints.REMAINDER;
    gbc.anchor = GridBagConstraints.SOUTH;
    panel.add(norway, gbc);
    gbc.weighty = 0;
    panel.add(tailand, gbc);

    menu.add(panel);
    panel.setBackground(Color.LIGHT_GRAY);
    tailand.setBackground(Color.WHITE);
    norway.setBackground(Color.WHITE);
    menu.pack();
    menu.setLocationRelativeTo(null);
    menu.setVisible(true);

  }
}

另一种选择可能是使用复合布局,以便“按钮”面板放置在BorderLayoutSOUTH位置,而“内容”放置在CENTER

暂无
暂无

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

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