D
Doodle
Gast
Hallo, wir nehmen zur Zeit Swing in Java durch. Ich wollte dazu ein kleines Programm erstellen, habe aber viele Probleme bei der richtigen darstellung.
Und zwar hab ich eine kleine Text-Area und rechts daneben sollen 4 eingabefelder sein, untereinander. Mein Problem nur, sie sind alle nebeneinander.
Weiß einer, wie ich alle 4 untereinander rechts neben der Text-Area bekomme?
Nach dem täglichen rumprobieren sieht der Code nun so aus: (im Moment nur 2 Eingabefelder)
Das Ursprungsprogramm war übrigends ein BMI-Rechner, falls manches merkwürdig vorkommt
Und zwar hab ich eine kleine Text-Area und rechts daneben sollen 4 eingabefelder sein, untereinander. Mein Problem nur, sie sind alle nebeneinander.
Weiß einer, wie ich alle 4 untereinander rechts neben der Text-Area bekomme?
Nach dem täglichen rumprobieren sieht der Code nun so aus: (im Moment nur 2 Eingabefelder)
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Metropole extends JFrame {
JTextField jtf_groesse;
JTextField jtf_gewicht;
JTextArea jta_ausgabe;
Container cp;
Color hintergrundfarbe;
public Metropole(String title) {
super(title);
cp = getContentPane();
hintergrundfarbe = cp.getBackground();
Lauscher lausch = new Lauscher();
JLabel jl_ueberschrift = new JLabel("Programm zur Ermittlung,",SwingConstants.CENTER);
jl_ueberschrift.setFont(new Font("Arial",Font.PLAIN,20));
JLabel jl_ueberschrift2 = new JLabel(" ob eine Stadt eine Metropole ist",SwingConstants.CENTER);
jl_ueberschrift2.setFont(new Font("Arial",Font.ITALIC,14));
JPanel jl_north = new JPanel();
jl_north.add(jl_ueberschrift);
jl_north.add(jl_ueberschrift2);
JLabel jl_groesse = new JLabel("Groesse: ");
JLabel jl_cm = new JLabel("cm");
JLabel jl_gewicht = new JLabel("Gewicht: ");
JLabel jl_kg = new JLabel("kg");
jtf_groesse = new JTextField("180",4);
jtf_groesse.setHorizontalAlignment(SwingConstants.RIGHT);
jtf_gewicht = new JTextField("80",4);
jtf_gewicht.setHorizontalAlignment(4);
jtf_gewicht.setOpaque(false);
JButton jb_berechnen = new JButton("Berechnen");
jb_berechnen.addActionListener(lausch);
JPanel jp_center = new JPanel();
jta_ausgabe = new JTextArea(4,20);
jta_ausgabe.setLayout( new GridLayout(3, 2, 6, 3) );
jp_center.add(jta_ausgabe);
jta_ausgabe.setText("Stadtnamen eingeben:");
jp_center.add(jtf_groesse);
jp_center.add(jtf_gewicht);
jp_center.add(jl_kg);
jp_center.add(jb_berechnen);
jp_center.setOpaque(false);
jta_ausgabe.setBackground(Color.lightGray);
JButton jb_quit = new JButton("QUIT");
jb_quit.addActionListener(lausch);
JPanel jp_south = new JPanel();
jp_south.add(jb_quit);
jp_south.setLayout(new GridLayout(1,3));
cp.add(jl_north,"North");
cp.add(jp_center,"Center");
cp.add(jp_south,"South");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
class Lauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {
String bezeichner = e.getActionCommand();
double groesse,gewicht,index;
if(bezeichner.equals("Berechnen")) {
jta_ausgabe.setBackground(Color.white);
groesse = Double.parseDouble(jtf_groesse.getText());
gewicht = Double.parseDouble(jtf_gewicht.getText());
index = (int) (gewicht*100/(groesse/100*groesse/100))/100.0;
jta_ausgabe.setText("Sie haben ein Body Mass-Index von:\n\t"+index);
if(index>=19&&index<=25) {
jta_ausgabe.append("\n Herzlichen Glückwunsch!!");
jta_ausgabe.setBackground(Color.cyan);
}
}
if(bezeichner.equals("yellow")) {
cp.setBackground(Color.yellow);
}
if(bezeichner.equals("blue")) {
cp.setBackground(Color.blue.brighter());
}
if(bezeichner.equals("Standard")) {
cp.setBackground(hintergrundfarbe);
}
if(bezeichner.equals("Zufallsfarbe")) {
int r = (int)(1+Math.random()*254);
int g = (int)(10+Math.random()*244);
int b = (int)(100+Math.random()*154);
cp.setBackground(new Color(r,g,b));
}
if(bezeichner.equals("QUIT")) {
if(JOptionPane.showConfirmDialog(null,"Wirklich beenden?","Frage",
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
if(bezeichner.equals("About")) {
int titel = JOptionPane.WARNING_MESSAGE;
JOptionPane.showMessageDialog (null, "About-Test", "About",titel);
}
}
}
public static void main(String[] args) {
Metropole fenster = new Metropole("Metropole");
fenster.setLocation(250,200);
fenster.setSize(450,250);
fenster.setVisible(true);
}
}
Das Ursprungsprogramm war übrigends ein BMI-Rechner, falls manches merkwürdig vorkommt