Hallo Leute, da ich noch nicht so viel Kenntnisse beim Java programmieren habe, bin ich noch nicht so flexibel, wenn es darum geht das erstellte Programm einfacher und optimierter umzustellen.
Ich hoffe ihr könnt mir helfen, mein Programm schöner zu gestalten.
Ich hoffe ihr könnt mir helfen, mein Programm schöner zu gestalten.
Java:
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
class ImageHandler extends Frame {
private Canvas myIC;
private String filename = "/germany.gif";
private String command = "G";
ImageHandler(){
myIC = new Canvas();
myIC.setPreferredSize(new Dimension(295, 300));
add(myIC);
GridBagLayout gbl = new GridBagLayout();
this.setLayout(gbl);
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH; // wie Komponente Bereich füllen soll
c.weightx = 10; // Breite
c.weighty = 10; // Höhe
c.insets = new Insets(0,5,10,15);
Button bG = new Button("Germany");
bG.setActionCommand("G");
bG.addActionListener(new BHandler() );
add(bG);
Button bI = new Button("Italy");
bI.setActionCommand("I");
bI.addActionListener(new BHandler() );
add(bI);
Button bE = new Button("England");
bE.setActionCommand("E");
bE.addActionListener(new BHandler() );
add(bE);
c.gridx = 0; // x-Position
c.gridy = -1; // y-Position
c.gridwidth = 1; // Breite
c.gridheight = 1; // Höhe
gbl.setConstraints(bG, c); // zum GridBagConstraints hinzufgen
c.gridx = 0;
c.gridy = -3;
c.gridwidth = 1;
c.gridheight = 1;
gbl.setConstraints(bI, c);
c.gridx = 0;
c.gridy = -6;
c.gridwidth = 1;
c.gridheight = 1;
gbl.setConstraints(bE, c);
addWindowListener(new WindowAdapter ( ){
public void windowClosing(WindowEvent e){
System.exit(0);
}
} );
setTitle ("A Flag");
setSize (360, 500);
setVisible (true);
setBackground(Color.gray);
}
public void paint(Graphics g){
super.paint(g);
drawFlag();
}
public void drawFlag(){
Image FlaggenBild = null ;
URL url = null;
Graphics myFG = myIC.getGraphics();
try{
url = new URL("File:///" + System.getProperty("user.home") + filename);
FlaggenBild = getToolkit().getImage(url);
setIconImage(FlaggenBild);
}catch (Exception e){
e.printStackTrace();
}
if (url != null && FlaggenBild != null){
Insets insets = getInsets();
int x = insets.left;
int y = insets.top;
int w = FlaggenBild.getWidth(this);
int h = FlaggenBild.getHeight(this);
myFG.drawImage(FlaggenBild, x, y, this);
}
}
class BHandler implements ActionListener {
public void actionPerformed(ActionEvent evt) {
Toolkit.getDefaultToolkit().beep();
command = evt.getActionCommand();
if (command.equalsIgnoreCase("G")) {
filename = "/germany.gif";
drawFlag();
} else if (command.equalsIgnoreCase("E")) {
filename = "/england.gif";
drawFlag();
}
else if (command.equalsIgnoreCase("I")) {
filename = "/italy.gif";
drawFlag();
}
ImageHandler.this.invalidate();
ImageHandler.this.validate();
}
}
public static void main (String [] args){
new ImageHandler ();
}
}
Zuletzt bearbeitet von einem Moderator: