import 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; } }