簡體   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