Erste Schritte in Java - MessageBox - Icon im form definieren

NetBull

Erfahrenes Mitglied
Hi,...

arbeite mich gerade in java ein und habe gleich ein Problem.

Ich nehme erst mal die .NET MessageBox und will die nachbauen um Forms kennen zu lernen.

Aktuell hänge ich beim ICON der Form (Frame). Bekomme kein eigenes ICON rein.

Beispielcode:
Code:
package com.recommind;

import java.awt.*;
import java.awt.event.*;

public class MessageBox 
{
	private String Title;
	private int Width;
	private int Height;
	private int X;
	private int Y;
	private Label Message;	
	
	public MessageBox(String Title, String Message, int Width, int Heigth)
	{
		this.Title = Title;
		this.Message = new Label(Message);
		this.Width = Width;
		this.Height = Heigth;
		this.Message = new Label(Message);
		this.Message.setAlignment(Label.CENTER);		
	}
	
	public void Show()
	{
		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		GraphicsDevice[] gs = ge.getScreenDevices();
		
		Frame mMessageBox = new Frame(this.Title);
		
		mMessageBox.setIconImage(Toolkit.getDefaultToolkit().getImage("warning.png"));
		
		mMessageBox.setSize(this.Width,this.Height);		
		mMessageBox.setVisible(true);
		
		
		int screenWidth = 0;
		int screenHeight = 0;

		DisplayMode dm = gs[0].getDisplayMode();
	    screenWidth = dm.getWidth();
	    screenHeight = dm.getHeight();
	    
	    this.X = (screenWidth - this.Width)/2;
	    this.Y = (screenHeight - this.Height)/2;
		
		mMessageBox.setLocation(this.X,this.Y);
		mMessageBox.add(this.Message);
		  
		Panel mPanel = new Panel();
		mMessageBox.addWindowListener
		  (
				  new WindowAdapter()
				  {
					  public void windowClosing(WindowEvent e)
					  {
						  System.exit(0);						  
					  }
				  }
		 );
		
		mMessageBox.add(mPanel,BorderLayout.NORTH);
		
	}

}

a) wo in meinem eclipse projekt muss die Grafik Datei liegen
b) geht das überhaupt mit png dateien?
c) wie implementiere ich ein ICON oben links im Form.Title.Bar?
d) geht das auch mit *.ICO Dateien?

LG deAndro
 

HonniCilest

Erfahrenes Mitglied
b) geht das überhaupt mit png dateien?
c) wie implementiere ich ein ICON oben links im Form.Title.Bar?
Theoretisch müsste es mit deiner Zeile funktionieren, zeigt er es nicht an? Kommt eine Fehlermeldung?
d) geht das auch mit *.ICO Dateien?
Theoretisch nein praktisch vielleicht. Java hat die Anforderung plattformunabhängig zu sein. Da *.ICO Dateien Windows Dateien sind wird dies standardmäßig nicht möglich sein.
 

NetBull

Erfahrenes Mitglied
OK, das mit den ICO Dateien leuchtet mir ein.

Nun hab ich noch was rumexperimentiert und es geht.
Die PNG Datei muss im Root des Projekt-Ordners stehen.