2016-01-23 9 views
0

Прошу прощения, если это глупый вопрос, но я не мог найти ответ на этот вопрос. Я пытаюсь сделать простую страницу входа в мою программу java. Он содержит настройки JLayeredPane и логин. Также есть одна JSplitPane, которая содержит две панели консоли JSrollpane и панель изменений. Поэтому проблема заключается в том, что я добавил JSplitPane и Settings layeredpane, но когда я добавляю login layeredpane, он идет в той же строке, что и в панели настроек, как и она, но он также идет рядом с splitpane, поэтому он выглядит следующим образом:MiG Layout плохое поведение

[- -]
[-] ... [-]

и это должно быть:

[----]
[-] [-]

Here is screenshot

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, поэтому просто скажите мне, если я сделал что-то неправильно. Спасибо за помощь!

+0

Подсказка: В Java, вы не запускайте имена переменных с прописной буквы и использовать верблюда случае. «Splitpanel» должен быть «splitPanel». –

+0

Спасибо, что было ново для меня :) – TheProgrammer

ответ

0
add(Splitpanel, "w 100%, h 80%, wrap"); 

должен быть

add(Splitpanel, "w 100%, h 80%, spanx, wrap"); 

 Смежные вопросы

  • Нет связанных вопросов^_^