package uebungen; import java.awt.Graphics; import java.awt.Container; import javax.swing.*; import java.awt.*; import java.awt.event.*; /** *

Title: Java-Übungen

*

Description: Übungsaufgaben zu "Informatik IIb"

*

Company: Fachhochschule Jena

* @author Oliver Jack * @version 1.0 */ class ConversionPanel extends JPanel { JTextField textField; JComboBox unitChooser; JSlider slider; public ConversionPanel(String title, String [] units) { setBorder(BorderFactory.createTitledBorder(title)); textField = new JTextField("10", 10); unitChooser = new JComboBox(units); slider = new JSlider(); JPanel unitGroup = new JPanel(); unitGroup.setLayout(new BoxLayout(unitGroup, BoxLayout.Y_AXIS)); unitGroup.add(textField); unitGroup.add(slider); setLayout(new FlowLayout(FlowLayout.CENTER, 15, 10)); add(unitGroup); add(unitChooser); } } /******************************************************************************/ public class Uebung5 implements ActionListener { protected JButton button; protected JLabel label; protected JProgressBar progressBar; protected int counter; public Uebung5() { counter = 0; } public void actionPerformed(ActionEvent e) { counter++; label.setText("Button wurde " + counter + " mal gegrückt"); progressBar.setValue(counter); progressBar.setString(100 * progressBar.getPercentComplete() + "%"); if (counter == 10) System.exit(0); } public void aufgabe1() { JFrame frame = new JFrame("Aufgabe 1"); Container contentPane = frame.getContentPane(); contentPane.setLayout(new BorderLayout()); button = new JButton("Hier klicken!"); button.addActionListener(this); label = new JLabel("Button wurde 0 mal gedrückt "); progressBar = new JProgressBar(0, 10); progressBar.setStringPainted(true); contentPane.add(button, BorderLayout.NORTH); contentPane.add(label, BorderLayout.CENTER); contentPane.add(progressBar, BorderLayout.SOUTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } public void aufgabe2a() { JFrame frame = new JFrame("Aufgabe 2a"); Container contentPane = frame.getContentPane(); contentPane.setLayout(new BorderLayout()); String [] metricDistances = { "Zentimeter" ,"Meter", "Kilometer" }; String [] usaDistances = { "Inches", "Feet", "Yards", "Miles" }; JPanel metricPanel = new ConversionPanel("Metrisches System", metricDistances); JPanel usaPanel = new ConversionPanel("Amerikanisches System", usaDistances); JPanel mainPane = new JPanel(); mainPane.setLayout(new GridLayout(2,1,5,5)); mainPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); mainPane.add(metricPanel); mainPane.add(usaPanel); contentPane.add(mainPane, BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } public void aufgabe2b() { String[] names = { "Aribert", "Clemens", "Erik", "Hugo", "Johann", "Lukas", "Martin", "Norbert", "Otto", "Reinold", "Robert", "Zacharias" }; JFrame frame = new JFrame("Aufgabe 2b"); /* Die Liste */ JList list = new JList(names); list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); JScrollPane listScroller = new JScrollPane(list); JPanel listPane = new JPanel(); listPane.setLayout(new BoxLayout(listPane, BoxLayout.Y_AXIS)); JLabel label = new JLabel("Fussballmannschaft:"); label.setLabelFor(list); listPane.add(label); listPane.add(Box.createRigidArea(new Dimension(0,5))); listPane.add(listScroller); listPane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); /* Die Buttons */ JButton cancelButton = new JButton("Cancel"); final JButton setButton = new JButton("Set"); frame.getRootPane().setDefaultButton(setButton); JPanel buttonPane = new JPanel(); buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.X_AXIS)); buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); buttonPane.add(Box.createHorizontalGlue()); buttonPane.add(cancelButton); buttonPane.add(Box.createRigidArea(new Dimension(10, 0))); buttonPane.add(setButton); /* alles zusammenfügen mit einem Borderlayout */ Container contentPane = frame.getContentPane(); contentPane.add(listPane, BorderLayout.CENTER); contentPane.add(buttonPane, BorderLayout.SOUTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { Uebung5 uebung5 = new Uebung5(); uebung5.aufgabe1(); uebung5.aufgabe2a(); uebung5.aufgabe2b(); } }