URL: https://www.overclockers.at/coding-stuff/unbezahlte_arbeit_mini-programm_in_java_215781/page_1 - zur Vollversion wechseln!
Es ist eigentlich nicht mein Stil so etwas anzufragen da ich das lieber selbst nachschaue, aber ich habe jetzt schon ein paar Stunden verschi..en nur um eine minimale GUI hinzubringen. Ich seh mich bei objektorientierter Programmierung nur wenig raus (und die letzten Versuche sind einige Zeit her) und Java scheint da einige verschiedene Möglichkeiten zu geben wie man das löst!?
Ich bräuchte eigentlich nur ein kleines Programm (nicht Applet), das mir (am besten vertikal sortiert) ein paar Dropdown-Boxen (JComboBox) und CheckBoxen (mit Text daneben) auf einem kleinen Frame ausgibt. Die Auswahlen (sowohl ComboBox und CheckBox) sollten dann bestimmten Zahlen zugeordnet sein (int) welche am Ende zu einem Ergebnis zusammengerechnet werden (das natürlich angezeigt werden soll
).
Das ganze vertikal geordnet und mittig.
Also ganz blöd ausgedrückt:
JComboBox1:
Katze (entspricht der Zahl 1)
Hund (entspricht der Zahl 2)
Papagei (entspricht der Zahl 3)
etc.
JComboBox2:
Quadrat (entspricht der Zahl 7)
Kreis (entspricht der Zahl 8)
Dreieck (entspricht der Zahl 9)
CheckBox1: (entspricht der Zahl 11)
[ ] Schoko
CHeckBox2: (entspricht der Zahl 12)
[ ] Erdbeer
Ergebnis: (entspricht Zahl_aus_ComboBox1 + Zahl_aus_ComboBox2 - Zahl_aus_CheckBox1 + Zahl_aus_CheckBox2)
Als Beispiel
Die ganzen genaueren Details, Werte, wie viele Boxen, Rechnung etc. kann ich eh selbst schreiben, mir fehlt nur irgendwie eine Art Grundgerüst und werde aus den ganzen Beispielen nur bedingt schlau (bzw. kostet mich das einfach zuviel Zeit
), ein passionierter Java-Coder hat das vermutlich in 1 min. 
Schau dir das mal an:
http://java.sun.com/docs/books/tuto...layout/box.html
Sollte für deine Zwecke ausreichend sein und dürfte eigentlich auch nicht allzu kompliziert sein. :-)
bin zwar kein java-profi, aber ich glaube, ich würde es so machen.
- Frame mit einem Gridlayout, welches 4 Zeilen und eine Spalte hat
- in Zeile 1 die ComboBox 1, in Zeile 2 die ComboBox 2, in Zeile 3 die beiden Chechboxen und in der 4ten Zeile ein JText mit dem Ergebnis der Zahlen
- zu den ersten 3 Zeilen jeweils actionlistener hinzufügen, die die Zahlen einfach auf einen int-wert aufaddieren.
- das ergebnis wird dann von dem JText benutzt
afaik sollte es so klappen 
Bin leider nicht sooo fit mit GUI's, aber wenns kein anderer geschwind machen kann/will, werde ich mich dran versuchen.
Netbeans hat iirc einen GUI Builder dabei. Damit sollte das relativ fix gehen und man muss sich fast nicht um Sachen wie Layout oder so kümmern.
Ich probiers grad mal, gib mir 1-2 Stunden 
Das mit Netbeans muss ich mir mal anschauen, im Moment verwende ich Eclipse.
Aber jetzt gehts mal ab zur Grillfeier (da komm ich eher nicht dazu
).
@Denne: Nicht dass du dir da 1-2h Arbeit antust, dachte eher daran falls das in 1-2 Minuten erledigt wäre dann könnte es jemand schnell hinbiegen (ansonsten muss ich mich eh selbst drum kümmern) 
Müsste eh bissl üben für die Uni, von daher kommts vllt ganz gut 
btw:
hab ich es richtig verstanden, bei den ersten 2 JComboBoxen kann man alles auswählen und bei der letzten Checkbox nur eins von den beiden?
Zitat von Denneund bei der letzten Checkbox nur eins von den beiden?
Ja, das war sozusagen meine Frage, ob er nicht Radiobuttons meint.
Also kann man generell alles auswählen? (damit ich es richtig verstehe
)
edit: okay, stand aufm schlauch, habs nun geschnallt 
edit2:
Hab nun mal die GUI ohne Actionlistener gebastelt. Man müsste diese also nur noch hinzufügen, was nicht all zu schwer sein sollte.
Bild:
ist es so, wie du es dir vorstellst?
Wenns so passt, kann ich die actionlistener hinzufügen und dir dann den quellcode schicken, oder aber du willst die actionlistener hinzufügen
(mir egal).
Quellcode ist auch sehr simpel gehalten, eh nur eine kleine Klasse.
Sag dann grad Bescheid.
edit3:
So, Programm ist fertig.
Zwar nicht der schönste Quelltext, aber ich hoffe, du findest dich zurecht, ist nicht so schwer 
Wenn was net stimmen sollte oder du was nicht verstehst, ich werde hier noch mitlesen.
Code:import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JComboBox; import javax.swing.JSeparator; import java.awt.BorderLayout; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; public class ComboBox extends JFrame implements ActionListener{ // Fenstergröße private static final int height = 350; private static final int width = 210; // Beide CheckBox-Optionen private JCheckBox schoko, erdbeer; // Text private JLabel text; // ComboBoxen private JComboBox eins, zwei; // Int Endergebniswert private int ergebnis = 0; // Int Zwischenwerte private int comboeins = 0; private int combozwei = 0; private int checkeins = 0; private int checkzwei = 0; public void actionPerformed(ActionEvent e){ // leer } // Fenster ComboBox(){ // Frame wird mit Namen erzeugt super("Auswahmenü"); setSize(width, height); // neues Layout wird erstellt Container pane = getContentPane(); pane.setLayout(new GridLayout(12,1)); this.setDefaultCloseOperation(EXIT_ON_CLOSE); // erste ComboBox pane.add(new JLabel("ComboBox Eins")); String[] tiere = {"Katze", "Hund", "Papagei", "bitte auswählen"}; JComboBox eins = new JComboBox(tiere); eins.setSelectedIndex(3); pane.add(eins); // Actionevent eins.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { JComboBox auswahleins = (JComboBox)e.getSource(); if(auswahleins.getSelectedItem().equals("Katze")) { comboeins = 1; summe(); text.setText(("Ergebnis: " + ergebnis)); } else if(auswahleins.getSelectedItem().equals("Hund")) { comboeins = 2; summe(); text.setText(("Ergebnis: " + ergebnis)); } else if(auswahleins.getSelectedItem().equals("Papagei")) { comboeins = 3; summe(); text.setText(("Ergebnis: " + ergebnis)); } else { comboeins = 0; summe(); text.setText(("Ergebnis: " + ergebnis)); } } }); // Trennlinie JSeparator separatoreins = new JSeparator(); pane.add(separatoreins); // zweite ComboBox pane.add(new JLabel("ComboBox Zwei: Bitte auswählen")); String[] formen = {"Quadrat", "Kreis", "Dreieck", "bitte auswählen"}; JComboBox zwei = new JComboBox(formen); zwei.setSelectedIndex(3); pane.add(zwei); // Actionevent zwei.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { JComboBox auswahlzwei = (JComboBox)e.getSource(); if(auswahlzwei.getSelectedItem().equals("Quadrat")) { combozwei = 7; summe(); text.setText(("Ergebnis: " + ergebnis)); } else if(auswahlzwei.getSelectedItem().equals("Kreis")) { combozwei = 8; summe(); text.setText(("Ergebnis: " + ergebnis)); } else if(auswahlzwei.getSelectedItem().equals("Dreieck")) { combozwei = 9; summe(); text.setText(("Ergebnis: " + ergebnis)); } else { combozwei = 0; summe(); text.setText(("Ergebnis: " + ergebnis)); } } }); // Trennlinie JSeparator separatorzwei = new JSeparator(); pane.add(separatorzwei); // CheckBox Schoko pane.add(new JLabel("CheckBox: Bitte auswählen")); schoko = new JCheckBox ("Schoko"); //Actionevent ItemListener schokoevent = new ItemListener() { public void itemStateChanged (ItemEvent e) { JCheckBox schoko = (JCheckBox)e.getItemSelectable(); if (schoko.isSelected()) { checkeins = 11; summe(); text.setText(("Ergebnis: " + ergebnis)); } else { checkeins = 0; summe(); text.setText(("Ergebnis: " + ergebnis)); } } }; schoko.addItemListener(schokoevent); pane.add(schoko); //Checkbox Erdbeer erdbeer = new JCheckBox ("Erdbeer"); // Actionevent ItemListener erdbeerevent = new ItemListener() { public void itemStateChanged (ItemEvent e) { JCheckBox erdbeer = (JCheckBox)e.getItemSelectable(); if (erdbeer.isSelected()) { checkzwei = 12; summe(); text.setText(("Ergebnis: " + ergebnis)); } else { checkzwei = 0; summe(); text.setText(("Ergebnis: " + ergebnis)); } } }; erdbeer.addItemListener(erdbeerevent); pane.add(erdbeer); //Trennlinie JSeparator separatordrei = new JSeparator(); pane.add(separatordrei); // Text (welches das Ergebnis enthält text = new JLabel("Ergebnis: " + ergebnis); pane.add(text); } // Methode, die aus allen ausgewählten Objekten die Summe erzeugt public void summe () { ergebnis = comboeins + combozwei + checkeins + checkzwei; } /** * @param args */ public static void main(String[] args) { new ComboBox().setVisible(true); } }
Danke, sieht schonmal recht gut aus, da ist alles dabei was ich brauche. Um den Rest und Formatierung kümmere ich mich eh selbst 
viel Spaß damit 
Falls noch was sein sollte -> Pm
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026