Hallo Leute,
ich hab jetzt schon länger in Foren und Online-Büchern geschaut, bin aber nicht fündig geworden. Ich hoffe, dass mir von euch jemand weiterhelfen kann. Bin ein wiedereinsteiger und kenne mich mit Java noch nicht richtig gut aus.
Folgendes Problem:
Ich möchte eine Java Applet programmieren, bei dem der User verschiedene Parameter eingeben kann, anschließend auf einen Button Drückt und es wird etwas berechnet und anschließend ein Diagramm gezeichnet.
Fenstereinteilung:
______________________
|...Eingabe..|... Zeichnen|
|...............|......bereich.|
|...............|................|
|...............|................|
|...............|................|
|_____________________
Ich habe das Fenster mit dem LayoutManager in zwei Teile aufgeteilt(siehe oben), links mit der Eingabemöglichkeit und Rechts mit einem Bereich, in dem gezeichnet wird. Ich habe mir gedacht, dass ich mit einer Methode auf dem rechten Panel malen kann.
Der Linke Teil hat keine Probleme bereitet. Als ich mich ans Zeichnen machen wollte und die Methode paint(..) überschreibe wird auf einmal der Linke Teil nichtmehr angezeigt.
Habt ihr eine Idee, was ich falsch mache?
Hier mal der Quellcode mit nicht überschriebener paint(..) funktion:
Habt Ihr eine Idee, wie ich in den Linken Teil etwas zeichnen kann?
Da soll letztendlich ein x-y-Diagram rein(Verluste über frequenz).
PS.: Ich weiß, dass das Layout zur Zeit nicht ganz so gut aussieht. Ich benutze für den Fall einen nicht ganz so passenden Layout Manager. Ich bin für jeden Tipp dankbar!
Grüße
TTrp
ich hab jetzt schon länger in Foren und Online-Büchern geschaut, bin aber nicht fündig geworden. Ich hoffe, dass mir von euch jemand weiterhelfen kann. Bin ein wiedereinsteiger und kenne mich mit Java noch nicht richtig gut aus.
Folgendes Problem:
Ich möchte eine Java Applet programmieren, bei dem der User verschiedene Parameter eingeben kann, anschließend auf einen Button Drückt und es wird etwas berechnet und anschließend ein Diagramm gezeichnet.
Fenstereinteilung:
______________________
|...Eingabe..|... Zeichnen|
|...............|......bereich.|
|...............|................|
|...............|................|
|...............|................|
|_____________________
Ich habe das Fenster mit dem LayoutManager in zwei Teile aufgeteilt(siehe oben), links mit der Eingabemöglichkeit und Rechts mit einem Bereich, in dem gezeichnet wird. Ich habe mir gedacht, dass ich mit einer Methode auf dem rechten Panel malen kann.
Der Linke Teil hat keine Probleme bereitet. Als ich mich ans Zeichnen machen wollte und die Methode paint(..) überschreibe wird auf einmal der Linke Teil nichtmehr angezeigt.
Habt ihr eine Idee, was ich falsch mache?
Hier mal der Quellcode mit nicht überschriebener paint(..) funktion:
Java:
import java.applet.Applet;
import java.net.URL;
import java.util.Date;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class layout extends Applet implements ActionListener {
private static final long serialVersionUID = 1L;
private Container EingabeContainer;
private Container GraphikContainer;
private Container KernauswahlContainer;
private Container ArbeitspunktEingabeContainer;
private Container Berechnecontainer;
private JTextField tf;
URL base;
Image my_gif;
MediaTracker mt;
public void init() {
this.setMenu();
URL base = null;
mt = new MediaTracker(this);
try { base = getDocumentBase();}
catch (Exception e) {}
my_gif = getImage(base,"Ma.gif");
mt.addImage(my_gif,1);
try {
mt.waitForAll();
}
catch (InterruptedException e) {}
}
private void setMenu() {
URL base = null;
Image my_gif;
MediaTracker mt;
mt = new MediaTracker(this);
try { base = getDocumentBase();}
catch (Exception e) {}
my_gif = getImage(base,"hallo.gif");
mt.addImage(my_gif,1);
try {
mt.waitForAll();
}
catch (InterruptedException e) {}
//f = new JFrame();
this.setLayout(new GridLayout());
KernauswahlContainer = new Container();
KernauswahlContainer.setLayout(new GridLayout(2,1,1,1));
ArbeitspunktEingabeContainer = new Container();
ArbeitspunktEingabeContainer.setLayout(new GridLayout(2,0,1,1));//(Anzahl Zeilen, x)
Berechnecontainer = new Container();
Berechnecontainer.setLayout(new FlowLayout());
EingabeContainer=new Container();
EingabeContainer.setLayout(new GridLayout(0,1,1,1));
EingabeContainer.add(KernauswahlContainer);
EingabeContainer.add(ArbeitspunktEingabeContainer);
EingabeContainer.add(Berechnecontainer);
JLabel KernLabel=new JLabel("Kerneingabe: ");
String[] KerneStringArray = { "112", "123", "155", "151", "151" };
JLabel mfeLabel=new JLabel("mFe/kg");
JTextField mfeTextField = new JTextField();
JLabel lfeLabel=new JLabel("lfe/cm");
JTextField lfeTextField = new JTextField();
JLabel afeLabel=new JLabel("afe/cm²");
JTextField afeTextField = new JTextField();
JComboBox KernComboBox = new JComboBox(KerneStringArray);
KernComboBox.addActionListener(this);
KernauswahlContainer.add(KernLabel);
KernauswahlContainer.add(KernComboBox);
KernauswahlContainer.add(new JLabel(""));
KernauswahlContainer.add(new JLabel(""));
KernauswahlContainer.add(new JLabel(""));
KernauswahlContainer.add(new JLabel(""));
KernauswahlContainer.add(mfeLabel);
KernauswahlContainer.add(mfeTextField);
KernauswahlContainer.add(lfeLabel);
KernauswahlContainer.add(lfeTextField);
KernauswahlContainer.add(afeLabel);
KernauswahlContainer.add(afeTextField);
this.add(EingabeContainer,BorderLayout.WEST);
GraphikContainer=new Container();
ArbeitspunktEingabeContainer.add(new JLabel());
JLabel flabel = new JLabel("f/kHz");
JTextField fTextfield=new JTextField();
ArbeitspunktEingabeContainer.add (flabel);
ArbeitspunktEingabeContainer.add (fTextfield);
Container RadioButtonContainer = new Container();
RadioButtonContainer.setLayout(new GridLayout(0,1));
//ButtonGroup radioGroup;
JCheckBox radioB;
JCheckBox radioU;
JCheckBox radioI;
radioB=new JCheckBox("Bpk");
radioB.doClick();
radioU=new JCheckBox("Upk");
radioI=new JCheckBox("Ipk");
RadioButtonContainer.add(radioB);
RadioButtonContainer.add(radioU);
RadioButtonContainer.add(radioI);
ArbeitspunktEingabeContainer.add(RadioButtonContainer);
JLabel BpkLabel=new JLabel("Bpk/T");
JTextField BUITextField = new JTextField("0,3000");
ArbeitspunktEingabeContainer.add (BpkLabel);
ArbeitspunktEingabeContainer.add (BUITextField);
JLabel PfeLabel = new JLabel("PFe/(W/kg)");
JTextField PfeTextField= new JTextField(" ");
JLabel PLabel = new JLabel("P/(W/core)");
JTextField PTextField= new JTextField(" ");
Berechnecontainer.add(PfeLabel);
Berechnecontainer.add(PfeTextField);
Berechnecontainer.add(PLabel);
Berechnecontainer.add(PTextField);
JButton BerechneButton = new JButton ("Berechne");
Berechnecontainer.add(BerechneButton);
this.add(GraphikContainer);
JLabel PowerLossLabel = new JLabel("Powerloss chart");
GraphikContainer.add(PowerLossLabel);
}
@Override
public void actionPerformed(ActionEvent arg0) {
tf.setText(((JButton) arg0.getSource()).getText());
}
// public void paint(Graphics g) {
//}
}
Habt Ihr eine Idee, wie ich in den Linken Teil etwas zeichnen kann?
Da soll letztendlich ein x-y-Diagram rein(Verluste über frequenz).
PS.: Ich weiß, dass das Layout zur Zeit nicht ganz so gut aussieht. Ich benutze für den Fall einen nicht ganz so passenden Layout Manager. Ich bin für jeden Tipp dankbar!
Grüße
TTrp