G
Guest
Gast
Hallo,
ich habe eine swing applikation geschrieben in der ich einen Sinusverlauf zeichne. Sobald ich das Fenster größer ziehe oder es verdeckt war ist das gezeichnete weg. Wie kann ich es dazu bringen das es immer dann neu gezeichnet wird?
Danke im Voraus Carsten
ich habe eine swing applikation geschrieben in der ich einen Sinusverlauf zeichne. Sobald ich das Fenster größer ziehe oder es verdeckt war ist das gezeichnete weg. Wie kann ich es dazu bringen das es immer dann neu gezeichnet wird?
Danke im Voraus Carsten
Code:
import javax.swing.*;
import java.awt.*;
public class FirstGUI extends JFrame{
private JButton button, button2,button3;
private JFormattedTextField textField;
private JPanel center, bottom, top, left, right, tleft;
private JLabel label1;
private Image offscreenImage;
private Graphics offscreenGraphics;
private double zh;
public FirstGUI(String title) {
super(title);
setLayout(new BorderLayout(5,5));
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
top = new JPanel();
top.setLayout(new BorderLayout(0,0));
bottom = new JPanel();
left = new JPanel();
tleft = new JPanel();
tleft.setLayout(new GridLayout(1,2));
right = new JPanel();
center = new JPanel();
center.setBackground(Color.white);
textField = new JFormattedTextField();
textField.setPreferredSize(new Dimension(50,20));
textField.setText("1-3");
textField.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textFieldKeyReleased(evt);
}
});
label1 = new JLabel();
label1.setText("hallo");
tleft.add(label1);
tleft.add(textField);
button = new JButton("OK");
button.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
buttonMouseClicked(evt);
}
});
button2 = new JButton("return");
button2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
button2MouseClicked(evt);
}
});
button3 = new JButton("Swing 3D");
button3.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
button3MouseClicked(evt);
}
});
top.add(tleft, BorderLayout.WEST);
bottom.add(button2);
bottom.add(button);
bottom.add(button3);
add(top, BorderLayout.NORTH);
add(bottom, BorderLayout.SOUTH);
add(left, BorderLayout.WEST);
add(right, BorderLayout.EAST);
add(center, BorderLayout.CENTER);
setVisible(true);
}
public void buttonMouseClicked(java.awt.event.MouseEvent evt) {
String equal;
zh=0;
equal =textField.getText();
Graphics line1 = center.getGraphics();
if("sin".equals(equal)){
for(int i=1;i<=center.getWidth();i++){
Sinus f = new Sinus(zh);
line1.setColor(Color.black);
line1.drawLine(0,center.getHeight()/2,center.getWidth(),center.getHeight()/2);
line1.setColor(Color.red);
line1.drawLine(i-1,((int)(f.vor()*100))+(center.getHeight()/2),i,((int)(f.rechnen()*100))+(center.getHeight()/2));
//gr2.drawLine(i,i,i+15,i+15);
zh++;
};
}
}
public void offpaint(){
}
private void button2MouseClicked(java.awt.event.MouseEvent evt) {
repaint();
}
public void button3MouseClicked(java.awt.event.MouseEvent evt) {
SwingingMembran goal=new SwingingMembran();
goal.setVisible(true);
}
private void textFieldKeyReleased(java.awt.event.KeyEvent evt) {
left.setBackground(Color.green);
right.setBackground(Color.green);
}
public static void main(String[] args) {
new FirstGUI("Sinus");
}
}