Verschoben? (java-, nicht forumbeziehend verschoben ;) )

Status
Nicht offen für weitere Antworten.

unknown_member

Bekanntes Mitglied
Hi!

In meinem Prog hab ich ein Prob. 😉

Wieso ist das JLabel und der JButton unten verschoben? Ich hab schon mit der Location rumprobiert aber nichts hat geklappt.


Hier ist der Quellcode:



Code:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.*;
import javax.imageio.*;
import javax.swing.*;


public class TLHMenu extends JFrame
   implements ActionListener {

   private JPanel                       gui;
   private JPanel                      gui2;

   private JButton                    start;

   private JLabel                      info;
   private JLabel                infoStrich;
   private JLabel                   strich2;

   private String                    strich;
   private String              beschreibung;



   public static void main(String [] args) throws IOException {

    TLHMenu go = new TLHMenu();
    go.setTitle("The Last Hint");
    go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    go.setSize(500,260);
    go.setResizable(false);
    go.setVisible(true);
    }


  TLHMenu() {
    makeGui();
  }


   public void makeGui() {

  gui  = new JPanel();
  gui2 = new JPanel();

  beschreibung  = new String("Wählen Sie die Spieleinstellungen.");
  strich        = new String("______________________________________________________________________");


  strich2 = new JLabel(strich);
  strich2.setForeground(Color.lightGray);
  gui.add(strich2);


  start = new JButton("                                                                   SPIELEN                                                                   ");                                                                                                                                                                                                                                                                                                                                             

  start.addActionListener(this);
  start.setBackground(Color.GRAY);
  gui.add(start);


  add(BorderLayout.SOUTH,gui);


  info = new JLabel(beschreibung);
  gui2.add(info);
  
  infoStrich = new JLabel(strich);
  infoStrich.setForeground(Color.lightGray);
  gui2.add(infoStrich);

  add(BorderLayout.CENTER,gui2);

}



   public void actionPerformed(ActionEvent event) {

  }
}



Vllt hat jemand eine Lösung oder einen Weg, das ein bisschen eleganter zu machen... 😉
Ich wäre beidenfalls aber sehr dankbar.

unknown_member
 
Wieso ist das JLabel und der JButton unten verschoben?

Weil man das Aussehen seiner GUI nicht über Grafikzeichen hinpfriemelt. Dafür gibt's Layouts. :bae:

Ich hab' mal ein bißchen dran rum geschnitzt. Ganz zufrieden bin ich noch nicht, aber mir fehlt gerade die Zeit. Im Großen und Ganzen sollte es jetzt passen. Wenn Du noch nicht zufrieden bist, lies Dich zum Thema Layouts mal ein bißchen ein, bzw. solltest Du das in jedem Fall tun.


Code:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class TLHMenu extends JFrame implements ActionListener {

	private static final long serialVersionUID = 1L;

	private JPanel gui;

	private JPanel gui2;

	private JButton start;

	private JLabel info;

	private JLabel infoStrich;

	private JLabel strich2;

	private String strich;

	private String beschreibung;

	public static void main(String[] args) throws IOException {
		new TLHMenu();
	}

	TLHMenu() {
		
		setTitle("The Last Hint");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(500, 250);
		setLayout(new BorderLayout());
		//go.setResizable(false);
		
		makeGui();
		
		setVisible(true);		
	}

	public void makeGui() {

		gui = new JPanel();
		gui.setLayout(new GridLayout(2,1,10,10));
		
		gui2 = new JPanel();
		gui2.setLayout(new GridLayout(2,1,10,10));

		beschreibung = new String("Wählen Sie die Spieleinstellungen.");
		strich = new String("______________________________________________________");

		strich2 = new JLabel(strich);
		strich2.setHorizontalAlignment(JLabel.CENTER);
		strich2.setForeground(Color.lightGray);
		gui.add(strich2);

		start = new JButton("SPIELEN");
		start.addActionListener(this);
		start.setBackground(Color.GRAY);
		gui.add(start);

		add(BorderLayout.SOUTH, gui);

		info = new JLabel(beschreibung);
		info.setHorizontalAlignment(JLabel.CENTER);
		gui2.add(info);

		infoStrich = new JLabel(strich);
		infoStrich.setHorizontalAlignment(JLabel.CENTER);
		infoStrich.setForeground(Color.lightGray);
		gui2.add(infoStrich);

		add(BorderLayout.NORTH, gui2);

	}

	public void actionPerformed(ActionEvent event) {

	}
}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben