Links ausrichten

Kassel

Aktives Mitglied
Ich habe ein Problem einen JButton nach links auszurichten, ich habe 5 panels per BoxLayout ausgerichtet ( VERTICAL ) untereinander. Alle Inhalte ( Componenten) der Panels sind zentriert ***FEHLER*** genau, dies will ich nicht haben. Ich möchte das mein Button im letzen Panel ganz nach links ausgerichtet ist.

Ich habe es provisorisch mit GridBagLayout als Layout für Panel 5 gemacht ... jedoch bin ich nicht zufrieden.

Hier mein Code:

Code:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;


import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Mancala extends JFrame {
	public Mancala(){
		super("Mancala Spielfeld");
		init();
	}

	
	public void init() {
		
		Container contentPane=getContentPane();
		BoxLayout boxLayout=new BoxLayout(contentPane, BoxLayout.Y_AXIS);
		contentPane.setLayout(boxLayout);
		
		
		// Panel 1
		JPanel ueberschrift=new JPanel();
		FlowLayout flowLayout=new FlowLayout();
		ueberschrift.setLayout(flowLayout);
		
		JLabel label=new JLabel("Mancala");
		
		ueberschrift.add(label);
		contentPane.add(ueberschrift);
		
		// Panel 2
		JPanel eingabe=new JPanel();
		eingabe.setLayout(flowLayout);
		
		JLabel label1=new JLabel("Spieler 1:");
		JTextField textfeld=new JTextField(20);
		
		eingabe.add(label1);
		
		eingabe.add(textfeld);
		contentPane.add(eingabe);
		
		// Panel 3
		JPanel eingabe1=new JPanel();
		eingabe1.setLayout(flowLayout);
		
		JLabel label2=new JLabel("Spieler 2:");
		JTextField textfeld1=new JTextField(20);
		eingabe1.add(label2);
		eingabe1.add(textfeld1);
		contentPane.add(eingabe1);
		
		// Panel 4
		JPanel buttonpanel=new JPanel();
		buttonpanel.setLayout(flowLayout);
		
		JButton button1=new JButton("Los");
		buttonpanel.add(button1);
		contentPane.add(buttonpanel);
		
		
		// Panel 5
		JPanel buttonPanel2=new JPanel();
		
		buttonPanel2.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		//GridBagConstraints c = new GridBagConstraints();
		JButton button2=new JButton("Beenden");
		//c.fill = GridBagConstraints.HORIZONTAL;
		//c.ipady = 0;       //reset to default
		//c.weighty = 3.0;   //request any extra vertical space
		//c.anchor = GridBagConstraints.PAGE_END; //bottom of space
		c.insets = new Insets(200,-180,20,0);  //top padding
		//c.gridx = 0;       //aligned with button 2
		//c.gridwidth = 2;   //2 columns wide
		//c.gridy = 2;       //third row
		buttonPanel2.add(button2,c);
		contentPane.add(buttonPanel2,c);
		

		
		
		
		
	}

}

PANEL 5 ist das Problem
 

Marco13

Top Contributor
Hm. Vermutlich nicht das was du willst, aber...
Code:
        buttonPanel2.setLayout(new BorderLayout());
        JButton button2=new JButton("Beenden");
        buttonPanel2.add(button2,BorderLayout.WEST);
        contentPane.add(buttonPanel2);
(dem ContentPane GridBagConstraints zu übergeben macht nicht so viel Sinn, wenn es ein BoxLayout hat). Halte dich mit dem Layout nicht zuu lange auf. Wenn das mal ein Mancala werden soll, gibt's da interessantere Punkte :)
 

Kassel

Aktives Mitglied
dem contentPane wollte ich gar nicht GridBagConstraints übergeben , halt schreib fehler ;)

aber diese Lösung die du mir angeboten hast ist nicht dass was ich suche :( ... p.s: ja es handelt sich um Mancala oder sollte es werden :D

Na ja trotzdem danke, ich versuch noch ein bisschen herum zu experimentieren
 

Marco13

Top Contributor
Ich versuche ja eigentlich, bei Forenfragen die Rückfrage: "Ööööiiih, was soll'n das eigentlich?" zu vermeiden, aber ... in diesem Fall: Ist es wirklich wichtig, ob der Button ein bißchen weiter links ist oder nicht? Wenn sich die Panelgröße ändert sieht das Layout so wie es jetzt ist eh ... nicht so toll aus.
 

Kassel

Aktives Mitglied
Also ich wollte ja auch eigentlich dass sich mein Beenden Button z.b: 20 px von dem linken Rand efindet , so würde er immer in der nähe vom Rand kleben egal wie wir es resizen. Das es nicht schön aussicht ist mir klar, war aber gefordert.

Diese Frage hat sich eigentlich auch geklärt doch jetzt habe ich noch eine kleine Frage( möchte nicht extra ein seperates thema öffnen ) , und zwar habe ich das Problem mit dem darstellen eines Bildes auf einem JButton, hier mein Code:

Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Insets;


import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Mancala extends JFrame {
	public Mancala(){
		super("Mancala Spielfeld");
		init();
	}

	
	public void init() {
		int pit12=5,pit11=3,pit10=0,pit9=1,pit8=8,pit7=3,pit6=0,pit5=1,pit4=6,pit3=5,pit2=2,pit1=3,k1=10,k2=2;
		String name1="Alice",name2="Bob";
		
		Container contentPane=getContentPane();
		BoxLayout boxLayout=new BoxLayout(contentPane, BoxLayout.PAGE_AXIS);
		contentPane.setLayout(boxLayout);
		
		// Panel 1
		JPanel namen=new JPanel();
		FlowLayout flowLayout=new FlowLayout();
		GridBagConstraints c=new GridBagConstraints();
		namen.setLayout(new GridBagLayout());
		
		JLabel label=new JLabel(name1+": "+Integer.toString(k1));
		//c.fill = GridBagConstraints.HORIZONTAL;
		//c.ipady = 5;       //reset to default
		c.ipadx = 600;
		c.ipady=30;
		//c.weighty = 3.0;   //request any extra vertical space
		//c.anchor = GridBagConstraints.PAGE_END; //bottom of space
		c.insets = new Insets(0,20,0,0);  //top padding
		//c.gridx = 0;       //aligned with button 2
		//c.gridwidth = 2;   //2 columns wide
		//c.gridy = 2;       //third row
		namen.add(label,c);
		contentPane.add(namen);
		
		JLabel label1=new JLabel(name2+": "+Integer.toString(k2));
		c.ipadx = 0;
		c.insets = new Insets(0,0,0,20);  //top padding

		namen.add(label1,c);
		contentPane.add(namen);
		
		//Panel 2
		JPanel pits=new JPanel();
		pits.setLayout(new GridBagLayout());
//		JButton button12=new JButton(Integer.toString(pit12));
		 
		JButton button12=new JButton(Integer.toString(pit12));
		//Image image = new ImageIcon(getClass().getResource("pit5.jpeg")).getImage();
        //ImageIcon icon = new ImageIcon(image.getScaledInstance(button12.getWidth(),button12.getHeight(),Image.SCALE_FAST ));
       // button12.setIcon(icon);
		

		c.insets = new Insets(0,20,0,0);
		c.ipadx = 20;
		pits.add(button12,c);
		JButton button11=new JButton(Integer.toString(pit11));
		pits.add(button11,c);
		JButton button10=new JButton(Integer.toString(pit10));
		pits.add(button10,c);
		JButton button9=new JButton(Integer.toString(pit9));
		pits.add(button9,c);
		JButton button8=new JButton(Integer.toString(pit8));
		pits.add(button8,c);
		JButton button7=new JButton(Integer.toString(pit7));
		pits.add(button7,c);
		contentPane.add(pits);
		
		// Panel 3
		JPanel kalah=new JPanel();
		kalah.setLayout(new GridBagLayout());
	
		GridBagConstraints d=new GridBagConstraints();

		
		JButton kalah1=new JButton(Integer.toString(k1));
		d.ipadx = 25;
		d.ipady= 80;
		d.insets = new Insets(0,0,0,500);
		kalah.add(kalah1,d);
		JButton kalah2=new JButton(Integer.toString(k2));
		d.insets = new Insets(0,0,0,0);

		kalah.add(kalah2,d);
		
		contentPane.add(kalah);

		// PAnel 4
		JPanel pits1=new JPanel();
		pits1.setLayout(new GridBagLayout());
		JButton button1=new JButton(Integer.toString(pit1));
		c.insets = new Insets(0,20,0,0);
		c.ipadx = 20;
		pits1.add(button1,c);
		JButton button2=new JButton(Integer.toString(pit2));
		pits1.add(button2,c);
		JButton button3=new JButton(Integer.toString(pit3));
		pits1.add(button3,c);
		JButton button4=new JButton(Integer.toString(pit4));
		pits1.add(button4,c);
		JButton button5=new JButton(Integer.toString(pit5));
		pits1.add(button5,c);
		JButton button6=new JButton(Integer.toString(pit6));
		pits1.add(button6,c);
		contentPane.add(pits1);
		
		// Panel 5
		
		JPanel end=new JPanel();		
		end.setLayout(new GridBagLayout());
		GridBagConstraints e = new GridBagConstraints();
		//GridBagConstraints c = new GridBagConstraints();
		JButton end_button=new JButton("Beenden");
		JButton platz=new JButton();
		platz.setVisible(true);

		//c.fill = GridBagConstraints.HORIZONTAL;
		//c.ipady = 0;       //reset to default
		//c.weighty = 3.0;   //request any extra vertical space
		//c.anchor = GridBagConstraints.PAGE_END; //bottom of space
		e.insets = new Insets(200,-450,20,0);  //top padding
		//c.insets = new Insets(0,20,20,0);  //top padding
		//e.insets = new Insets(0,40,0,0); 
		//c.gridx = 0;       //aligned with button 2
		//c.gridwidth = 2;   //2 columns wide
		//c.gridy = 2;       //third row
		end.add(end_button,e);
		contentPane.add(end);
		
	}
}

Ich möchte z.b: die Zahl 5 mit einem Bild das 5 Steine reprräsentiert darstellen . Ich habe alle Bilder erstellt ( Photoshop ) sind alle 30*30 gross somit genau wie auch die JButtons ... bei Panel 2 habe ich meinen Versuch auskommentiert und zwar wollte ich es so machen:

Code:
JButton button12=new JButton();
		Image image = new ImageIcon(getClass().getResource("pit5.jpeg")).getImage();
        ImageIcon icon = new ImageIcon(image.getScaledInstance(button12.getWidth(),button12.getHeight(),Image.SCALE_FAST ));
       button12.setIcon(icon);

Meine Bilder habe ich im Workspace unter /src liegen wo auch meine Mancala.java etc. ist .
Ich bekomme einen Null Pointer Exception , also findet er anscheinend dass Bild nicht - was mache ich da falsch ???

P.S: Habe versucht Bild zu verkleinern 20*20 , habe statt .jpeg , .jpg benutzt , statt .jpeg(.jpg ) habe ich .gif benutz doch umsonst ich verzweifle langsam.

Danke im voraus
 

Marco13

Top Contributor
Öh, lange her, wie war das? Ich glaube, für getClass().getResource() müssen die Bilder in dem Verzeichnis liegen, wo die class-Dateien drin sind...
Der Imagetyp (PNG, GIF) oder Größe sollten da eigentlich keine Rolle spielen, Entweder er findet sie, oder eben nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Swing JLabel Text nach Links ausrichten klappt nicht AWT, Swing, JavaFX & SWT 3
J GridBagLayout JLabels links ausrichten + vertikaler Freiraum AWT, Swing, JavaFX & SWT 4
A JLabel links ausrichten AWT, Swing, JavaFX & SWT 4
D JavaFX Button Links- und Rechtsklick? AWT, Swing, JavaFX & SWT 1
P Swing JToggleButton Links- und Rechtsklick AWT, Swing, JavaFX & SWT 4
K Swing JPanel nach oben und links vergrößern AWT, Swing, JavaFX & SWT 3
Z Plot nach links verschieben!! AWT, Swing, JavaFX & SWT 1
S BoxLayout: Anordnung der Komponenten links statt zentriert AWT, Swing, JavaFX & SWT 0
S GridBagLayout "links-rechts-layouten" AWT, Swing, JavaFX & SWT 7
TheJavaKid JTextPane: komplexe Formatierung (links) AWT, Swing, JavaFX & SWT 2
G Swing JMenuBar zu weit links und oben dargestellt AWT, Swing, JavaFX & SWT 5
S Zeilennummern links im Texteditor AWT, Swing, JavaFX & SWT 2
O Swing JTable spalten sollen Links stehen AWT, Swing, JavaFX & SWT 5
N Swing Java Komponente zur Darstellung von klickbaren Links, die Java Funktionen ausführen können AWT, Swing, JavaFX & SWT 2
J Swing GridBagLayout: Links-nach-rechts Orientierung statt zentriert AWT, Swing, JavaFX & SWT 12
G LayoutManager Layout welches von Links nach rechts anordnet mit TOP Alignment! AWT, Swing, JavaFX & SWT 5
S Swing JTabbedPane: Inhalt soll oben links anfangen AWT, Swing, JavaFX & SWT 6
badfish Swing ImageIcon auf JLabel, Fenster Maximieren verbieten und Icon oben links austauschen? AWT, Swing, JavaFX & SWT 5
R JTable Header - will links kleines icon hinzufuegen..? AWT, Swing, JavaFX & SWT 6
V SWT/JFace Interessante Links AWT, Swing, JavaFX & SWT 3
M Wie Scrollbalken links positionieren? AWT, Swing, JavaFX & SWT 14
Daniel_L JTable - Links-rechts-Klick ist gleich Doppelklick? AWT, Swing, JavaFX & SWT 2
M ImageIcon auf AbstractButton links-/rechtbündig AWT, Swing, JavaFX & SWT 2
M Scollbar links AWT, Swing, JavaFX & SWT 4
F 2 icons in jtabbedpane, links und rechts von label AWT, Swing, JavaFX & SWT 2
P GridBagLayout - links oben beginnen. AWT, Swing, JavaFX & SWT 6
T JLabel mit Links AWT, Swing, JavaFX & SWT 4
B JscrollPane scrollt nicht nach links oder oben AWT, Swing, JavaFX & SWT 3
L Links in JTextArea? AWT, Swing, JavaFX & SWT 5
A Animierte Panels? Bzw. Panel von links reinfahren lassen? AWT, Swing, JavaFX & SWT 5
P Zeichnen nur von oben links nach unten rechts möglich AWT, Swing, JavaFX & SWT 4
P Menü soll sich nur nach links aufbauen... AWT, Swing, JavaFX & SWT 7
V label-links AWT, Swing, JavaFX & SWT 5
M JLabel ausrichten AWT, Swing, JavaFX & SWT 2
B JCheckBox ausrichten ? AWT, Swing, JavaFX & SWT 1
G JavaFX CSS: Label in GridPane rechts ausrichten AWT, Swing, JavaFX & SWT 9
J jTextFields ausrichten AWT, Swing, JavaFX & SWT 5
D JLabel Image ausrichten AWT, Swing, JavaFX & SWT 2
R Swing Wie kann man Internal Frames automatisch ausrichten lassen? AWT, Swing, JavaFX & SWT 3
P LayoutManager GroupLayout an dem rechten Rand ausrichten AWT, Swing, JavaFX & SWT 2
E Seitenabstand ausrichten JLabel AWT, Swing, JavaFX & SWT 2
S Fenster an bestehendem Fenster ausrichten AWT, Swing, JavaFX & SWT 6
T Inhalt von einem Tab an JTabbedPane größe ausrichten? AWT, Swing, JavaFX & SWT 2
K richtiges Ausrichten mehrerer Labels AWT, Swing, JavaFX & SWT 3
A Swing Box Label ausrichten AWT, Swing, JavaFX & SWT 3
E 2D-Grafik Text an Kreispfad ausrichten AWT, Swing, JavaFX & SWT 2
T LayoutManager Panel in Scrollpane mittig ausrichten AWT, Swing, JavaFX & SWT 2
T Swing JSplitPane Componenten ausrichten AWT, Swing, JavaFX & SWT 4
M Dynamisches generieren und ausrichten von Komponenten AWT, Swing, JavaFX & SWT 11
E JToolBar ausrichten AWT, Swing, JavaFX & SWT 2
data89 Button(s) vertikal mittig in JPanel ausrichten AWT, Swing, JavaFX & SWT 7
D JTextArea rechtsbündig ausrichten ? AWT, Swing, JavaFX & SWT 3
C JScrollPane immer ganz unten ausrichten AWT, Swing, JavaFX & SWT 17
I JDialog relativ zum Parent ausrichten AWT, Swing, JavaFX & SWT 4
M Hallo Herr Uhres, Frage zu DND_Demo: Ausrichten der Panels:) AWT, Swing, JavaFX & SWT 4
P JEditorPane mit HTMLEditorKit Text ausrichten AWT, Swing, JavaFX & SWT 2
G Bündig Ausrichten? AWT, Swing, JavaFX & SWT 11
vogella JLabel - Ausrichten von Text AWT, Swing, JavaFX & SWT 3
frankred SWT Elemente ausrichten AWT, Swing, JavaFX & SWT 9
C TableHeader in JTable ausrichten ? AWT, Swing, JavaFX & SWT 2
J GUI Komponenten ausrichten? AWT, Swing, JavaFX & SWT 2
E JFrame ausrichten AWT, Swing, JavaFX & SWT 2
L JList ausrichten funktioniert nicht AWT, Swing, JavaFX & SWT 6
B BorderLayout/JSplitPane Problem beim Ausrichten AWT, Swing, JavaFX & SWT 5
A Komponenten in JTree ausrichten AWT, Swing, JavaFX & SWT 2
F GridLayout horizontal ausrichten AWT, Swing, JavaFX & SWT 6
Landei Labels in Box linksbündig ausrichten AWT, Swing, JavaFX & SWT 15
V SWT: Label vertikal ausrichten AWT, Swing, JavaFX & SWT 11
TRunKX JTextField will sich nicht richtig ausrichten. AWT, Swing, JavaFX & SWT 2
G Komponenten ausrichten unter Swing AWT, Swing, JavaFX & SWT 7
G Schrift vertikal ausrichten AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben