Java UI mit Swing WindowBuilderJOptionPaneButton und ActionListenerProgressBar 1ProgressBar 2 – SwingWorker WindowBuilder Benutzeroberflächen in Java kann man mit Swing erstellen. Dies kann durch direkte Codeeingabe geschehen oder man nutzt einen GUI-Builder. Einer der meist genutzten ist der WindowBuilder, der direkt mit Eclipse installiert wird. Dazu erstellst du einfach ein neues WindowBuilder Element: Daraufhin wird eine neue Java Klasse erstellt mit einem einfachen Swing UI Element. In diesem Beispiel ein JDialog Element. Jetzt kann man unten auf „Design“ klicken und die Benutzeroberfläche mit dem WindowBuilder erstellen: Sollte das Tab „Design“ nicht sichtbar sein, kannst du deine Java Datei mit „Rechtsklick > Open With > WindowBuilder Editor“ öffnen! JOptionPane int eingabe = JOptionPane.showConfirmDialog(null, "Geben Sie Ihr Einverständnis?", "Einverständnis", JOptionPane.YES_NO_CANCEL_OPTION); System.out.println(eingabe); if(eingabe == 0){ //immer YES System.out.println("Ja gewählt."); }else if(eingabe == 1){ //immer NO System.out.println("Nein gewählt."); }else if(eingabe == 2){ //immer CANCEL System.out.println("Abbrechen gewählt."); } YES_NO_OPTION – Auswahl aus „Ja“ und „Nein“YES_NO_CANCEL_OPTION – Auswahl aus „Ja“, „Nein“ und „Abbrechen“OK_CANCEL_OPTION – Auswahl aus „OK“ und „Abbrechen“ Weitere Optionen findest du hier: JOptionPane Übersicht Button und ActionListener public class MeinButtonUI extends JDialog { private JTextField textField; public MeinButtonUI () { setLocationRelativeTo(null); setSize(300, 150); getContentPane().setLayout(null); textField = new JTextField(); textField.setBounds(104, 41, 96, 19); getContentPane().add(textField); textField.setColumns(10); JButton btnNewButton = new JButton("New button"); btnNewButton.setBounds(77, 10, 150, 21); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText("Hello World"); } }); getContentPane().add(btnNewButton); } } ProgressBar 1 public class ProgressBarGUI extends JDialog { private JButton btnNewButton; private JProgressBar progressBar; private Integer counter = 0; public ProgressBarGUI() { setResizable(false); setTitle("title"); setModal(true); setLocationRelativeTo(null); setSize(300, 150); setLayout(null); // Button btnNewButton = new JButton("+10"); btnNewButton.setBounds(93, 50, 100, 20); btnNewButton.setAlignmentX(Component.CENTER_ALIGNMENT); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { counter += 10; calculateProgress(200, counter); } }); // progress bar progressBar = new JProgressBar(); progressBar.setBounds(49, 20, 187, 20); progressBar.setStringPainted(true); progressBar.setForeground(new Color(64, 64, 64)); progressBar.setBackground(Color.WHITE); // Add elements to JDialog getContentPane().add(btnNewButton); getContentPane().add(progressBar); } // function to increase progress public void setProgress(int value) { this.progressBar.setValue(value); this.progressBar.revalidate(); this.progressBar.repaint(); } // method to calculate progressBar percent public void calculateProgress(int maxProgress, int currentProgress) { double currentPercent = (double) 100 / maxProgress * currentProgress; setProgress((int) currentPercent); } } ProgressBar 2 – SwingWorker public class ProgressBarGUI extends JDialog { private JButton btnNewButton; private JProgressBar progressBar; private int currentProgress = 0; private int maxProgress = 200; private boolean increaseProgressBar = false; public ProgressBarGUI() { setResizable(false); setTitle("title"); setModal(true); setLocationRelativeTo(null); setSize(300, 150); setLayout(null); // custom SwingWorker class MySwingWorker extends SwingWorker<Void, String> { protected Void doInBackground() throws Exception { Thread.sleep(1000); return null; } protected void done() { try { if (currentProgress < maxProgress && increaseProgressBar) { updateCurrentProgress(20); calculateProgress(); new MySwingWorker().execute(); } } catch (Exception e) { e.printStackTrace(); } } } // Button start/stop btnNewButton = new JButton("start"); btnNewButton.setBounds(93, 50, 100, 20); btnNewButton.setAlignmentX(Component.CENTER_ALIGNMENT); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (!increaseProgressBar) { increaseProgressBar = true; new MySwingWorker().execute(); btnNewButton.setText("stop"); } else { increaseProgressBar = false; btnNewButton.setText("start"); } } }); // progress bar progressBar = new JProgressBar(); progressBar.setBounds(49, 20, 187, 20); progressBar.setStringPainted(true); progressBar.setForeground(new Color(64, 64, 64)); progressBar.setBackground(Color.WHITE); // Add elements to JDialog getContentPane().add(btnNewButton); getContentPane().add(progressBar); } // function to increase progress public void setProgress(int value) { this.progressBar.setValue(value); this.progressBar.revalidate(); this.progressBar.repaint(); } // method to calculate progressBar percent public void calculateProgress() { double currentPercent = (double) 100 / this.maxProgress * this.currentProgress; setProgress((int) currentPercent); } public void updateCurrentProgress(int addToProgress) { this.currentProgress += addToProgress; calculateProgress(); } } Links JOptionPane ÜbersichtJavaPoint Swing Tutorial unsere-schule.org × Java UI mit Swing Code: Infos: unsere-schule Codes