Попытка поставить кнопку и используя режим центра - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь создать меню параметров, чтобы можно было выбирать флаги для отображения, я пытаюсь поместить кнопку хвоста в левом нижнем углу, и кажется, что она не хочет сдвинуться с места.

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 голосов
/ 21 ноября 2018
  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);

Прочтите раздел из учебного пособия по Swing в Менеджер макетов для получения дополнительной информации и примера использования каждого менеджера макета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...