Archief - JAVA: splashscreen centreren probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

QplQyer

Legacy Member
Jow, ik wilde een splashscreen maken (wel eigenlijk daarna uitbreiden tot een soort msn-popupdialoogje), maar dat dom ding wil niet centreren en ik weet echt niet waarom.
Als ik het opstart, komt de foto in 't midden en dan direct daarna (wel in 't midden is zichtbaar voor een nanoseconde ofzo) springt em naar de bovenhoek.
't is wellicht iets kleins of stoms, dus hopelijk ziet iemand van jullie wat er fout aan is:
(let niet op de comments, er zitten stukken bij gegenereerd door Eclipse).


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

/*
 * Created on 11-sep-2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author QplQyer
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class MSNtest extends JWindow {

	private javax.swing.JPanel jContentPane = null;

	/**
	 * This is the default constructor
	 */
	public MSNtest() {
		super();
		initialize();
	}
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setContentPane(getJContentPane());
		JLabel l = new JLabel(new ImageIcon("c:\\images\\pic05l.jpg"));
		this.getJContentPane().add(l,BorderLayout.CENTER);
		pack();
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		Dimension labelSize = l.getPreferredSize();
                setSize(labelSize.width,labelSize.height);
		setLocation((screenSize.width-labelSize.width)/2,(screenSize.height-labelSize.height)/2);
		addMouseListener(new MouseAdapter()
				{
					public void mousePressed(MouseEvent e)
					{
						setVisible(false);
						dispose();
					}
				});
				setVisible(true);
	}
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private javax.swing.JPanel getJContentPane() {
		if(jContentPane == null) {
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(new java.awt.BorderLayout());
		}
		return jContentPane;
	}

	public static void main(String[] args) {
		new MSNtest();
	}
	
}

Grayfox

Legacy Member
kzie ook ni wa er mis aan is, mss kan je proberen die set size weg te commenten om te zien als dat helpt, ook die pack(); (kweet wel ni wa da is mja :p)

hopelijk helpt dit, maar ik betwijfel het, nog nooit met swing gewerkt :)

QplQyer

Legacy Member
wel die pack zorgt ervoor dat JWindow even groot wordt als die label (die image dus), heb ik al es weg gecomment maar hielp niet veel :/
De plaatsing maakt normaal ook niet echt iets uit.

Die setSize is trouwens nog een overblijfsel van een probeersel, dus die mag er eigenlijk uit aangezien pack(); hetzelfde doet, maar probeerde wat uit om het op te lossen.

QplQyer

Legacy Member
Hmmz, eigenaardig:

Via de commandline net geprobeerd en dat werkte foutloos.
Via eclipse -> het probleem zoals beschreven.

Ik heb eclipse 3.0.1 en j2re 1.4.2_05 staan en j2sdk 1.4.2_04
Gelijk welke j2re ik gebruik bij eclipse krijg ik dat probleem, via commandline niet, raar.

Kn0t

Legacy Member
Ik gebruik altijd setLocationRelativeTo(null); om te centreren.
Misschien lukt het daarmee zowel van de commandline als via eclipse?

QplQyer

Legacy Member
Neen, werkt niet, fout zal bij eclipse liggen wellicht, bug reportje posten dan maar :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan