Guten Tag,
mittlerweile hab ich ja schon fast ein schlechtes Gewissen, drei Fragen von mir hintereinander
Nun will ich ein größeres Programm (einer Art Rechner) schreiben, es soll ein Hauptfenster enthalten, aus dem man zwischen vier Buttons wählen kann: Normal, Fläche, Volumen und Funktion. Das Hauptfenster habe ich fertig. Nun geht es zu den Unterfenstern jetzt hänge ich am Normal, das soll einen ganz normalen Taschenrechner gleichen.
Hier mal der Code
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Normal extends JFrame {
JPanel ausgabe = new JPanel();
JPanel tasten = new JPanel();
JPanel platzhalter1 = new JPanel();
JPanel platzhalter2 = new JPanel();
public Normal(){
super(„Normal“);
TextField anzeige = new TextField(„Machen Sie ihre Eingabe“,75);
ausgabe.add(anzeige);
ausgabe.setPreferredSize(new Dimension(300, 100));
JButton b1 = new JButton(„7“);
JButton b2 = new JButton(„8“);
JButton b3 = new JButton(„9“);
JButton op1 = new JButton(":");
JButton b4 = new JButton(„4“);
JButton b5 = new JButton(„5“);
JButton b6 = new JButton(„6“);
JButton op2 = new JButton("*");
JButton b7 = new JButton(„1“);
JButton b8 = new JButton(„2“);
JButton b9 = new JButton(„3“);
JButton op3 = new JButton("-");
JButton b10 = new JButton(„0“);
JButton b11 = new JButton(",");
JButton b12 = new JButton("+");
JButton op4 = new JButton("=");
tasten.setLayout(new GridLayout(4,4,20,20));
b1.setPreferredSize(new Dimension(50, 50));
b2.setPreferredSize(new Dimension(50, 50));
b3.setPreferredSize(new Dimension(50, 50));
op1.setPreferredSize(new Dimension(50, 50));
b4.setPreferredSize(new Dimension(50, 50));
b5.setPreferredSize(new Dimension(50, 50));
b6.setPreferredSize(new Dimension(50, 50));
op2.setPreferredSize(new Dimension(50, 50));
b7.setPreferredSize(new Dimension(50, 50));
b8.setPreferredSize(new Dimension(50, 50));
b9.setPreferredSize(new Dimension(50, 50));
op3.setPreferredSize(new Dimension(50, 50));
b10.setPreferredSize(new Dimension(50, 50));
b11.setPreferredSize(new Dimension(50, 50));
b12.setPreferredSize(new Dimension(50, 50));
op4.setPreferredSize(new Dimension(50, 50));
platzhalter1.setPreferredSize(new Dimension(200, 100));
platzhalter2.setPreferredSize(new Dimension(200, 100));
tasten.add(b1);
tasten.add(b2);
tasten.add(b3);
tasten.add(op1);
tasten.add(b4);
tasten.add(b5);
tasten.add(b6);
tasten.add(op2);
tasten.add(b7);
tasten.add(b8);
tasten.add(b9);
tasten.add(op3);
tasten.add(b10);
tasten.add(b11);
tasten.add(b12);
tasten.add(op4);
getContentPane().add(BorderLayout.NORTH, ausgabe);
getContentPane().add(BorderLayout.CENTER, tasten);
getContentPane().add(BorderLayout.EAST,platzhalter1);
getContentPane().add(BorderLayout.WEST, platzhalter2);
}
public static void main(String[] args){
Normal n = new Normal();
n.setSize(800,500);
n.setLocation(400,300);
n.setVisible(true);
}
}
Mein Problem ist ich möchte dass die Tasten die Größe haben die ich angebe beispielsweise 50*50. Wenn ich das Panel der Buttons dann mit dem BorderLayout ins CENTER lege, nehmen die Buttons aber die Größe 50*50 nicht an, sondern sind ca. 130*70. Dann viel mir ein ich könnte die seitlichen Teile des BorderLayout also WEST und EAST einfach als Platzhalter leer lassen, dann dürfte das CENTER gar nicht erst soweit aufgehen sonst gingen die Buttons halt immer bis zum Rand des Fensters. Das hat dann auch gut Funktioniert aber das muss doch auch anders gehen.
Dann würde ich gerne noch die Größe des TextField vergrößern, am besten dynamisch, denn die Buttons vergrößern sich schließlich auch dynamisch.
Kann mir jemand einen Rat geben?
Abschließend noch eine Frage.
Der Button „Funktionen“ im Hauptfenster soll wie der Name schon sagt Graphen von Funktionen zeichnen können, unser Mathe Prof. hat mit Informatikern ein Programm entwickelt dass Funktionsgraphen in Echtzeit darstellen lässt, also man gibt eine Funktion an und der Graph wird gezeichnet, denkt ihr ich bekomme dass auch hin?
liebe Grüße Matthias