Я делаю пользовательский интерфейс в minecraft
плагине. Все работает, за исключением того, что у меня есть JPanel
, и он не заполняет все JFrame
. Поэтому я хочу, чтобы JPanel
заполнило все JFrame
, даже если мы изменим масштаб окна.
- Я использую менеджер раскладок (
FlowLayout
) для JPanel
.
- Я попытался использовать менеджер компоновки для
JFrame
, ну, это не решило мою проблему, потому что не изменило размер JPanel
.. Я попытался установить размер JPanel
на JFrame
размер, но при изменении размера он не масштабируется вместе с ним.
Итак, как я могу это сделать?
Мой плагин создает кнопку для каждого игрока, и когда я нажимаю кнопку, он пинает игрока.
Мой код (я не могу опубликовать меньше, потому что я не знаю, где мне нужно что-то изменить):
public static JFrame f;
public static JTextField jtf;
public static JPanel jp;
public static void creategui()
{
System.out.println("GUI created.");
f = new JFrame("Players");
jp = new JPanel();
jp.setLayout(new FlowLayout(FlowLayout.LEFT));
jp.setBackground(Color.GRAY);
jtf = new JTextField("Reason");
jtf.setPreferredSize(new Dimension(200,20));
jtf.setToolTipText("Write the reason here.");
jp.setSize(new Dimension(200,200));
f.setLayout(null);
f.setSize(500,500);
f.setVisible(true);
jp.add(jtf);f.add(jp, BorderLayout.CENTER);
for (final Player p : Bukkit.getOnlinePlayers())
{
System.out.println("Looping.");
final JButton b = new JButton();
b.setName(p.getName());
b.setText(p.getName());
b.setToolTipText("Kick " + b.getText());
b.setBackground(Color.GREEN);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!b.getBackground().equals(Color.RED))
{
Bukkit.getScheduler().runTask(main, new Runnable() {
public void run() {
Bukkit.getPlayer(b.getText()).kickPlayer(jtf.getText());
b.setBackground(Color.RED);
}
});
}
}
});
jp.add(b);
System.out.println("Button added.");
}
f.add(jp, BorderLayout.CENTER);
}