Прошу прощения, если это глупый вопрос, но я не мог найти ответ на этот вопрос. Я пытаюсь сделать простую страницу входа в мою программу java. Он содержит настройки JLayeredPane и логин. Также есть одна JSplitPane, которая содержит две панели консоли JSrollpane и панель изменений. Поэтому проблема заключается в том, что я добавил JSplitPane и Settings layeredpane, но когда я добавляю login layeredpane, он идет в той же строке, что и в панели настроек, как и она, но он также идет рядом с splitpane, поэтому он выглядит следующим образом:MiG Layout плохое поведение
[- -]
[-] ... [-]
и это должно быть:
[----]
[-] [-]
Main.java
package Main;
import javax.swing.JFrame;
import Development.Version;
import GameEngine.GameEngine;
public class Main {
private static String title = "2D SquareWorld 0.";
private static JFrame window;
public static void main(String[] args) {
GameEngine game = new GameEngine();
window = new JFrame();
window.setTitle("2D SquareWorld 0." + Version.newVersion());
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.add(game);
window.add(new GUI());
window.pack();
window.setSize(1000, 720);
window.setLocationRelativeTo(null);
window.setVisible(true);
}
}
GUI.java
package Main;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import net.miginfocom.swing.MigLayout;
public class GUI extends JPanel {
private static final long serialVersionUID = 1L;
private JSplitPane Splitpanel;
private JScrollPane consolepanel, changelogpanel;
private JPasswordField password;
private JLabel usernametext, passwordtext;
private JButton update, register, login;
private JCheckBox keepLogged;
private JTextField username, server;
private JTextPane console, changelog;
private JLayeredPane loginlayer, settingslayer;
public GUI() {
setLayout(new MigLayout());
settingslayer = new JLayeredPane();
settingslayer.setBorder(BorderFactory.createTitledBorder(""));
loginlayer = new JLayeredPane();
loginlayer.setBorder(BorderFactory.createTitledBorder(""));
username = new JTextField();
password = new JPasswordField();
usernametext = new JLabel("Username:");
passwordtext = new JLabel("Password:");
update = new JButton("Update");
register = new JButton("Register");
login = new JButton("Login");
keepLogged = new JCheckBox("Keep me logged in");
server = new JTextField();
server.setEditable(false);
server.setText("jdbc:mysql://sql4.freemysqlhosting.net");
loginlayer.add(server);
loginlayer.add(keepLogged);
loginlayer.add(login);
loginlayer.add(update);
loginlayer.add(register);
loginlayer.add(usernametext);
loginlayer.add(passwordtext);
loginlayer.add(username);
loginlayer.add(password);
console = new JTextPane();
console.setContentType("text/html");
console.setEditable(false);
console.setText("<center><h1><u>Console:</u></h1></center>");
changelog = new JTextPane();
changelog.setContentType("text/html");
changelog.setEditable(false);
changelog.setText("<center><h1><u>Changelog:</u></h1></center>");
consolepanel = new JScrollPane(console);
consolepanel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
consolepanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
changelogpanel = new JScrollPane(changelog);
changelogpanel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
changelogpanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Splitpanel = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, consolepanel, changelogpanel);
Splitpanel.setOneTouchExpandable(true);
Splitpanel.setDividerLocation(480);
add(Splitpanel, "w 100%, h 80%, wrap");
add(settingslayer, "w 50%, h 20%");
add(loginlayer, "w 50%, h 20%");
}
}
Я прошу прощения за мой плохой английский. Это мой первый вопрос в stackoverflow, поэтому просто скажите мне, если я сделал что-то неправильно. Спасибо за помощь!
Подсказка: В Java, вы не запускайте имена переменных с прописной буквы и использовать верблюда случае. «Splitpanel» должен быть «splitPanel». –
Спасибо, что было ново для меня :) – TheProgrammer