Hallo, ich hoffe mir kann hier jemand helfen.
Ich habe folgendes Problem:
Im folgenden Quellcode versuche ich ein blaues Rechteck als JPanel, mit den Maßen 150x150 Pixel, in einem anderen JPanel, welches als Rahmen dient, horizontal zu zentrieren.
Dies wird aber nicht richtig gemacht. Es entsteht links ein größerer Rand zum Fenster als rechts. Ich messe das mit dem Maßband am Monitor nach, aber man sieht es auch optisch schon.
Nehme ich aber nur das blaue JPanel Rechteck und versuche es direkt auf der ContentPane zu zentrieren, dann funktioniert es.
Ich vermute es gibt da ein Problem mit JPanel in JPanel ?
Und bitte keine Hilfe in Form von ich solle die LayoutManager benutzen. Ja ich weiß, man macht es damit und das bekomme ich auch hin, es lässt mir aber keine Ruhe nicht zu wissen warum er im Beispiel nicht richtig zentriert wenn ich ein JPanel im JPanel nutze.
Ich schreibe in der Eclipse IDE(Kepler) auf einem MacMini mit Java 7.
Irgendwas übersehe ich wohl...
Hier der Quellcode wie es nicht richtig zentriert wird:
Wenn man die Kommentarzeile wieder aktiviert und den entryPanel auskommentiert funktioniert es, weil es dann ja auch wieder nur ein JPanel gibt, also nicht verschachtelt in einem anderen.
Ich habe folgendes Problem:
Im folgenden Quellcode versuche ich ein blaues Rechteck als JPanel, mit den Maßen 150x150 Pixel, in einem anderen JPanel, welches als Rahmen dient, horizontal zu zentrieren.
Dies wird aber nicht richtig gemacht. Es entsteht links ein größerer Rand zum Fenster als rechts. Ich messe das mit dem Maßband am Monitor nach, aber man sieht es auch optisch schon.
Nehme ich aber nur das blaue JPanel Rechteck und versuche es direkt auf der ContentPane zu zentrieren, dann funktioniert es.
Ich vermute es gibt da ein Problem mit JPanel in JPanel ?
Und bitte keine Hilfe in Form von ich solle die LayoutManager benutzen. Ja ich weiß, man macht es damit und das bekomme ich auch hin, es lässt mir aber keine Ruhe nicht zu wissen warum er im Beispiel nicht richtig zentriert wenn ich ein JPanel im JPanel nutze.
Ich schreibe in der Eclipse IDE(Kepler) auf einem MacMini mit Java 7.
Irgendwas übersehe ich wohl...
Hier der Quellcode wie es nicht richtig zentriert wird:
Wenn man die Kommentarzeile wieder aktiviert und den entryPanel auskommentiert funktioniert es, weil es dann ja auch wieder nur ein JPanel gibt, also nicht verschachtelt in einem anderen.
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class SizeTest extends JFrame implements ActionListener{
public SizeTest(int width, int height){
setLayout(null);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
double screenWidth = dim.getWidth();
double screenHeight = dim.getHeight();
setBounds( (int)((screenWidth - width)/2), (int)((screenHeight - height) / 2), width, height);
JPanel entryPanel = new JPanel();
entryPanel.setLayout(null);
entryPanel.setBounds(10, 10, width - 20, height - 40);
entryPanel.setBorder(BorderFactory.createEtchedBorder());
JPanel test = new JPanel();
test.setLayout(null);
test.setBounds( (width - 150)/2, 20, 150, 150);
test.setBackground(Color.blue);
entryPanel.add(test);
getContentPane().add(entryPanel); // with this line, it is NOT positioned in the center
//getContentPane().add(test); // drawing the panel direct to ContentPane works. The panel is centered
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){
SizeTest window = new SizeTest(1024, 768);
window.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent arg0) {
}
}
Zuletzt bearbeitet: