尝试放置按钮并使用中心模式

时间:2018-11-21 16:16:32

标签: java swing awt

我试图创建一个选项菜单,以便能够选择要显示的标志,我试图将tailand按钮放在左下角,看来它不想让步。

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

public class Flags {
public static void startup() {
    Dimension d = new Dimension(400,300);
    JFrame menu = new JFrame("Flag Menu");
    menu.setResizable(true);
    JButton tailand = new JButton("Tailand");
    JPanel tailandPanel = new JPanel();
    tailand.setLayout(null);
    tailandPanel.setLayout(null);


    tailand.setBounds(300,100,100,600);
    tailandPanel.add(tailand);
    menu.add(tailandPanel);
    tailandPanel.setBackground(Color.LIGHT_GRAY);
    tailand.setBackground(Color.WHITE);
    tailandPanel.setPreferredSize(d);
    tailand.setPreferredSize(d);
    tailandPanel.setLocation(1, 1);
    tailand.setLocation(1, 1);
    menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    menu.setLocationRelativeTo(null);
    menu.setSize(600, 400);
    menu.setResizable(false);
    menu.setVisible(true);
    menu.setLocationRelativeTo(null);
}
}

我尝试过tailand.setPreferredSize(d);tailandpanel.setPreferredSize(d);,但是没有运气。 还可以使用中心模式吗? (例如,给300,200,按钮的中心将是它们的中间位置?)

1 个答案:

答案 0 :(得分:0)

  1. 不要使用空布局
  2. 不要使用setPreferredSize(...)

Swing旨在与布局管理器一起使用

例如:

JButton button = new JButton( "Tailand" );

JPanel left = new JPanel( new BorderLayout() );
left.setBackground( Color.WHITE );
left.add(button, BorderLayout.PAGE_END);

JFrame frame = new JFrame("Flag Menu");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frane.setLocationRelativeTo(null);
frame.add(left, BorderLayout.LINE_START);
frame.setSize(600, 400);
frame.setVisible(true);

请阅读Layout Manager上Swing教程中的部分,以获取更多信息和使用每个布局管理器的示例。