rendered paste bodyimport java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class PlanetPanel extends JFrame implements ActionListener {
public static final int ANTAL = 12;
private Container container;
private JComboBox box1;
private JScrollPane scrollPane;
private JPanel nPanel;
private JPanel mPanel;
private JPanel sPanel;
private JPanel wPanel;
private JLabel bild = new JLabel ("");
private JLabel d = new JLabel ("Diameter");
private JLabel o = new JLabel ("omloppstid");
private JLabel infoLabel = new JLabel ("Planeterna i vårt solsystem");
private JTextField diameter = new JTextField();
private JTextField omloppstid = new JTextField();
private Vector planetList = new Vector();
public PlanetPanel() {
this.skapaGUI();
}
public void skapaGUI() {
container = getContentPane();
setSize(655, 500);
/*box1.addItem("Merkurius");
System.out.println("added item merkurius...");
box1.addItem("Venus");
box1.addItem("Tellus");
box1.addItem("Mars");
box1.addItem("Jupiter");
box1.addItem("Saturnus");
box1.addItem("Uranus");
box1.addItem("Neptunus");
box1.addItem("Pluto");*/
String[] items = { "Merkurius", "Venus", "Tellus", "Mars", "Jupiter", "Saturnus", "Uranus", "Neptunus", "Pluto" };
box1 = new JComboBox(items);
box1.addActionListener(this);
planetList.add(new Planet ("Merkurius", 4878, 0.24, Toolkit.getDefaultToolkit().getImage("Merkurius.gif")));
planetList.add(new Planet ("Venus", 12104, 0.61, Toolkit.getDefaultToolkit().getImage("Venus.gif")));
planetList.add(new Planet ("Tellus", 12756, 1.0, Toolkit.getDefaultToolkit().getImage("Tellus.gif")));
planetList.add(new Planet ("Mars", 6794, 1.88, Toolkit.getDefaultToolkit().getImage("Mars.gif")));
planetList.add(new Planet ("Jupiter", 142796, 11.86, Toolkit.getDefaultToolkit().getImage("Jupiter.gif")));
planetList.add(new Planet ("Saturnus", 120000, 29.46, Toolkit.getDefaultToolkit().getImage("Saturnus.gif")));
planetList.add(new Planet ("Uranus", 50800, 84.07, Toolkit.getDefaultToolkit().getImage("Uranus.gif")));
planetList.add(new Planet ("Neptunus", 50450, 164.82, Toolkit.getDefaultToolkit().getImage("Neptunus.gif")));
planetList.add(new Planet ("Pluto", 3400, 248.6, Toolkit.getDefaultToolkit().getImage("Pluto.gif")));
System.out.println("planetList size: "+planetList.size());
nPanel = new JPanel();
infoLabel.setOpaque(true);
infoLabel.setForeground(Color.black);
infoLabel.setBackground(Color.blue);
nPanel.add(infoLabel);
container.add(nPanel, BorderLayout.NORTH);
wPanel = new JPanel();
GridBagLayout m = new GridBagLayout();
wPanel.setLayout(m);
GridBagConstraints con = new GridBagConstraints();
con.gridy=0;
con.gridx=0;
con.gridheight = 1;
con.insets = new Insets(25, 5, 25, 5);
m.setConstraints(box1, con);
con.gridy=1;
con.gridheight = 15;
con.gridy=17;
con.gridheight = 1;
con.anchor = GridBagConstraints.CENTER;
wPanel.setBackground(Color.white);
wPanel.add(box1);
container.add(wPanel, BorderLayout.WEST);
scrollPane = new JScrollPane(bild);
container.add(BorderLayout.CENTER, scrollPane);
sPanel = new JPanel();
sPanel.add(this.d);
sPanel.add(diameter);
sPanel.add(o); sPanel.add(omloppstid);
container.add(sPanel, BorderLayout.SOUTH);
setVisible(true);
}
public Planet getPlanet(String namn) {
Planet planet = null;
Iterator i = planetList.iterator();
System.out.println("getPlanet called with arg: "+namn);
if (! i.hasNext()) System.out.println("Iterator has no elements");
while (i.hasNext()) {
planet = (Planet) i.next();
System.out.println("\""+namn+"\" - \""+planet.visaNamn()+"\"");
if (planet.visaNamn().equalsIgnoreCase(namn)) {
System.out.println("Found planet");
break;
}
}
return planet;
}
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
if (cb.getSelectedItem() instanceof String) System.out.println("Item instanceof String");
String planetName = (String)cb.getSelectedItem();
System.out.println("PlanetName: "+planetName);
Planet planet = getPlanet(planetName);
int diameter = planet.visaDiameter();
double year = planet.visaOmloppstid();
Image bild = planet.visaImage();
d.setText("Diameter: "+String.valueOf(diameter));
o.setText("Omlopsstid: "+String.valueOf(year));
}
public static void main(String[] args) {
PlanetPanel p = new PlanetPanel();
}
}
class Planet extends JPanel {
private int diameter;
private double omloppstid;
private Image bild;
private String namn;
public Planet (String n, int d, double o, Image b) {
diameter = d;
omloppstid = o;
bild = b;
namn = n;
}
public String visaNamn(){
return namn;
}
public int visaDiameter(){
return diameter;
}
public double visaOmloppstid(){
return omloppstid;
}
public Image visaImage(){
return bild;
}
}