Hallo zusammen,
ich lerne gerade mit Java zu programmieren und stehe vor der Aufgabe, die Oberfläche des Windows Rechners nachzuprogrammieren.
Hier sind die Vorgaben und mein bisheriger Stand: http://img837.imageshack.us/img837/9103/rechnerm.png
Wie auf dem dritten Bild zu sehen, habe ich quasi als Grundlayout das BorderLayout gewählt und dessen CENTER nochmals in ein BorderLayout unterteilt. Mit JPanels und dem GridLayout habe ich den Rest angeordnet.
Probleme:
- Im vorgegebenen Menü ist links immer noch so ein Streifen, bei mir nicht. Wie bekomme ich den?
- Die vier Buttons auf der linken Seite sind ein wenig zu tief; sie sollten eigentlich mit den Buttons rechts bündig sein. Ich kann mir nicht erklären, warum das so ist. Habt ihr eine Idee?
- Und wenn wir grad schon dabei sind: Ich hätte gerne, dass bei „Ansicht“ „Standard“ schon beim Start ausgewählt ist. Mit set.Enabled oder sowas gings nicht. Mit was geht’s? (Ja, ich weiß, Standard schreibt man mit d, werde das noch abändern )
Danke für eure Antworten, Juli
Hier noch der Code (Ich weiß, Listen wären übersichtlicher, aber ich habs jetzt eben schon so gemacht):
package x;
import javax.swing.*;
import java.awt.*;
public class TaschenrechnerView extends JFrame {
Container c;
JTextField t;
JPanel gitter, jp1, jp2, jp3;
JButton b2, b3, b4;
JButton c1, c2, c3, c4, c5;
JButton d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15,
d16, d17, d18, d19, d20;
public TaschenrechnerView() {
// Basiscontainer
c = getContentPane();
c.setLayout(new BorderLayout(12, 20)); // Abstände: (vertikal, horizontal)
// Zahlenzeile
t = new JTextField(„0,“);
t.setHorizontalAlignment(JTextField.RIGHT);
c.add(t, BorderLayout.NORTH);
// Zeile eins: 3 Buttons
jp1 = new JPanel(new GridLayout(1, 3, 5, 5));
b2 = new JButton(„Rücktaste“);
b3 = new JButton(„CE“);
b4 = new JButton(„C“);
b2.setMargin(new Insets(0, 0, 0, 0));
b2.setForeground(Color.RED);
b3.setForeground(Color.RED);
b4.setForeground(Color.RED);
jp1.add(b2);
jp1.add(b3);
jp1.add(b4);
// rechtes Gitter
jp3 = new JPanel(new GridLayout(4, 5, 5, 5));
d1 = new JButton(„7“);
d1.setForeground(Color.BLUE);
d2 = new JButton(„8“);
d2.setForeground(Color.BLUE);
d3 = new JButton(„9“);
d3.setForeground(Color.BLUE);
d4 = new JButton("/");
d4.setForeground(Color.RED);
d5 = new JButton(„sqrt“);
d5.setForeground(Color.RED);
d6 = new JButton(„4“);
d6.setForeground(Color.BLUE);
d7 = new JButton(„5“);
d7.setForeground(Color.BLUE);
d8 = new JButton(„6“);
d8.setForeground(Color.BLUE);
d9 = new JButton("*");
d9.setForeground(Color.RED);
d10 = new JButton("%");
d10.setForeground(Color.RED);
d11 = new JButton(„1“);
d11.setForeground(Color.BLUE);
d12 = new JButton(„2“);
d12.setForeground(Color.BLUE);
d13 = new JButton(„3“);
d13.setForeground(Color.BLUE);
d14 = new JButton("-");
d14.setForeground(Color.RED);
d15 = new JButton(„1/x“);
d15.setForeground(Color.RED);
d16 = new JButton(„0“);
d16.setForeground(Color.BLUE);
d17 = new JButton("+/-");
d17.setForeground(Color.BLUE);
d18 = new JButton(",");
d18.setForeground(Color.BLUE);
d19 = new JButton("+");
d19.setForeground(Color.RED);
d20 = new JButton("=");
d20.setForeground(Color.RED);
d1.setMargin(new Insets(0, 0, 0, 0));
d2.setMargin(new Insets(0, 0, 0, 0));
d3.setMargin(new Insets(0, 0, 0, 0));
d4.setMargin(new Insets(0, 0, 0, 0));
d5.setMargin(new Insets(0, 0, 0, 0));
d6.setMargin(new Insets(0, 0, 0, 0));
d7.setMargin(new Insets(0, 0, 0, 0));
d8.setMargin(new Insets(0, 0, 0, 0));
d9.setMargin(new Insets(0, 0, 0, 0));
d10.setMargin(new Insets(0, 0, 0, 0));
d11.setMargin(new Insets(0, 0, 0, 0));
d12.setMargin(new Insets(0, 0, 0, 0));
d13.setMargin(new Insets(0, 0, 0, 0));
d14.setMargin(new Insets(0, 0, 0, 0));
d15.setMargin(new Insets(0, 0, 0, 0));
d16.setMargin(new Insets(0, 0, 0, 0));
d17.setMargin(new Insets(0, 0, 0, 0));
d18.setMargin(new Insets(0, 0, 0, 0));
d19.setMargin(new Insets(0, 0, 0, 0));
d20.setMargin(new Insets(0, 0, 0, 0));
jp3.add(d1);
jp3.add(d2);
jp3.add(d3);
jp3.add(d4);
jp3.add(d5);
jp3.add(d6);
jp3.add(d7);
jp3.add(d8);
jp3.add(d9);
jp3.add(d10);
jp3.add(d11);
jp3.add(d12);
jp3.add(d13);
jp3.add(d14);
jp3.add(d15);
jp3.add(d16);
jp3.add(d17);
jp3.add(d18);
jp3.add(d19);
jp3.add(d20);
// CENTER vom ‚GrundBorderLayout‘ wird gespalten in neues BorderLayout
gitter = new JPanel(new BorderLayout(5, 5));
gitter.add(jp1, BorderLayout.NORTH);
gitter.add(jp3, BorderLayout.CENTER);
c.add(gitter, BorderLayout.CENTER);
// linke Spalte
jp2 = new JPanel(new GridLayout(5,1,5,5));
c5 = new JButton("");
c1 = new JButton(„MC“);
c2 = new JButton(„MR“);
c3 = new JButton(„MS“);
c4 = new JButton(„M+“);
c5.setMargin(new Insets(0, 0, 0, 0));
c1.setMargin(new Insets(0, 0, 0, 0));
c2.setMargin(new Insets(0, 0, 0, 0));
c3.setMargin(new Insets(0, 0, 0, 0));
c4.setMargin(new Insets(0, 0, 0, 0));
c1.setForeground(Color.RED);
c2.setForeground(Color.RED);
c3.setForeground(Color.RED);
c4.setForeground(Color.RED);
jp2.add(c5);
jp2.add(c1);
jp2.add(c2);
jp2.add(c3);
jp2.add(c4);
c.add(jp2, BorderLayout.WEST);
// Menü
JMenuBar men = new JMenuBar();
setJMenuBar(men);
JMenu bearbeiten = new JMenu(„Bearbeiten“);
men.add(bearbeiten);
JMenu ansicht = new JMenu(„Ansicht“);
men.add(ansicht);
JMenu hilfe = new JMenu("?");
men.add(hilfe);
JMenuItem kopieren = new JMenuItem(„Kopieren Strg+C“);
JMenuItem einfuegen = new JMenuItem(„Einfügen Strg+V“);
bearbeiten.add(kopieren);
bearbeiten.addSeparator();
bearbeiten.add(einfuegen);
JRadioButtonMenuItem standart = new JRadioButtonMenuItem(„Standart“);
JRadioButtonMenuItem wissenschaftlich = new JRadioButtonMenuItem(
„Wissenschaftlich“);
ButtonGroup bg = new ButtonGroup();
bg.add(standart);
bg.add(wissenschaftlich);
ansicht.add(standart);
// standart.setEnabled(true);
ansicht.add(wissenschaftlich);
ansicht.addSeparator();
JMenuItem zifferngrupierung = new JMenuItem(„Zifferngruppierung“);
ansicht.add(zifferngrupierung);
JMenuItem hilfethemen = new JMenuItem(„Hilfethemen“);
JMenuItem info = new JMenuItem(„Info“);
hilfe.add(hilfethemen);
hilfe.addSeparator();
hilfe.add(info);
}
}