2017-07-03 1 views
0

Hallo Ich versuche, auf der GUI von meinem Text-basierten Spiel mit einem Rahmen-Layout zu arbeiten, und ich habe fast das, was ich versuche, mit der GUI zu erreichen.GUI-Layout von My Text Spiel

Hier ist was ich will. Ich habe fast alles außer den Buttons. Ich möchte, dass es so aussieht wie in meiner Skizze.

Kann ich Hilfe bekommen, wie ich das erreichen kann?

enter image description here

Hier ist meine Klasse für die GUI-Einrichtung:

package Story1; 

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

public class textGUI extends JFrame{ 
    private JButton button; 
    private JTextArea plot; 
    private JLabel label; 

public textGUI() 
{ 
    createView(); 
    setDefaultCloseOperation(EXIT_ON_CLOSE); 
    setMinimumSize(new Dimension(400,200)); 
    setSize(400,200); 
    setLocationRelativeTo(null); 
    setResizable(true); 
    setVisible(true); 
} 
public void createView() 
{ 
    Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 
    // PANEL 
    JPanel panel = new JPanel(); 
    panel.setBorder(new EmptyBorder(10,10,10,10)); 
    panel.setLayout(new BorderLayout()); 
    getContentPane().add(panel); 
    //NORTH 
    JPanel panelnorth = new JPanel(new BorderLayout()); 
    panel.add(panelnorth, BorderLayout.NORTH); 
    panelnorth.add(new JLabel("Chapter 1")); 
    // 

    //TEXTFIELD CENTER 
    JTextArea plot = new JTextArea(); 
    plot.setLineWrap(true); 
    plot.setWrapStyleWord(true); 
    plot.setEditable(true); 
    JScrollPane scrollPane = new JScrollPane(plot); 
    panel.add(scrollPane); 
    //S 
    //SOUTH 
    JPanel south = new JPanel(); 
    panel.add(south, BorderLayout.SOUTH); 
    JButton button1 = new JButton("HI"); 
    JButton button2 = new JButton("Okay"); 
    JButton button3 = new JButton("Bye"); 
    button1.setPreferredSize(new Dimension(screenSize.width, 10)); 
    south.add(button1); 
    south.add(button2); 
    south.add(button3); 

    } 
} 
+0

'BorderLayout' die beiden Hauptkomponenten zu halten, eine' GridLayout' die „Tasten“ in ihrer eigenen Komponente und legten an dem 'BorderLayout.SOUTH gewickelt zu halten 'Position – MadProgrammer

Antwort

0

Für Ihr Design ein GridLayout ist wahrscheinlich die beste Option. In diesem Fall sollten die GridLayout Zeilen mit dem Konstruktor GridLayout(int rows, int cols) auf 0 (also eine beliebige Anzahl von Zeilen) und Spalten auf 1 (dh nur 1 Spalte) gesetzt werden.

Ihre Quellcode Erweiterung zu demonstrieren:

JPanel south = new JPanel(); 
south.setLayout(new GridLayout(0, 1)); 
panel.add(south, BorderLayout.SOUTH); 
JButton button1 = new JButton("HI"); 
JButton button2 = new JButton("Okay"); 
JButton button3 = new JButton("Bye"); 
south.add(button1); 
south.add(button2); 
south.add(button3); 
+0

Du bist perfekt. Vielen Dank! –