Hallo!
Ich bin neu im Forum und bitte erstmal um Verständnis, wenn meine Frage unklar ist:
Ich abe ein Programm geschrieben, dass ein Fenster erzeugt. In diesem Fenster ist nur ein Button nämlich "refresh" zu finden. Durch Klick auf Button soll das mathematische Koordinatensystem gezeichnet werden. Ich habe alles hinbekommen.
Mein Problem: Wenn ich das Fenster durch Ziehen oder einfach durch Klick auf das Symbol Maximieren oben rechts des Fensters vergrössere, möchte ich, dass meine Grafik auch vergrössert wird. Gibt es eine Methode, die das ermöglicht oder muss dass anders realisiert werden.
Zur Lösung habe ich versucht die Grösse des bildPanel, aus das meine Grafik gezeichnet werden soll, abzufragen, und dann mit diesen Größen das Koordinatensystem zu zeichnen. Ich bekomme aber als Größe immer den Wert 0.
Start.java
Diagramm.java
Ich bin neu im Forum und bitte erstmal um Verständnis, wenn meine Frage unklar ist:
Ich abe ein Programm geschrieben, dass ein Fenster erzeugt. In diesem Fenster ist nur ein Button nämlich "refresh" zu finden. Durch Klick auf Button soll das mathematische Koordinatensystem gezeichnet werden. Ich habe alles hinbekommen.
Mein Problem: Wenn ich das Fenster durch Ziehen oder einfach durch Klick auf das Symbol Maximieren oben rechts des Fensters vergrössere, möchte ich, dass meine Grafik auch vergrössert wird. Gibt es eine Methode, die das ermöglicht oder muss dass anders realisiert werden.
Zur Lösung habe ich versucht die Grösse des bildPanel, aus das meine Grafik gezeichnet werden soll, abzufragen, und dann mit diesen Größen das Koordinatensystem zu zeichnen. Ich bekomme aber als Größe immer den Wert 0.
Start.java
PHP:
package deneme;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Start
{
String st,st1;
@SuppressWarnings("deprecation")
public static void main(String[] args)
{
SimpleFrame frame=new SimpleFrame();
frame.show();
}
/*public void setString1(String string1, String string2) {
this.st =string1;
this.st1 =string2;
}*/
}
class SimpleFrame extends JFrame
{
private static final long serialVersionUID = 1L;
int WIDTH;
int HEIGHT;
public SimpleFrame()
{
WIDTH=400;
HEIGHT=400;
setSize(WIDTH,HEIGHT);
setEnabled(true);
//fenster kann nicht vergrößert werden
//setResizable(false);
DrawPanel panel=new DrawPanel();
Container contentPane=getContentPane();
contentPane.add(panel);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
class DrawPanel extends JPanel {
private static final long serialVersionUID = 1L;
//private MyCanvas can;
JButton refreshButton;
JPanel bottomPanel;
JPanel bildPanel;
GridLayout layout;
Diagramm bild;
public DrawPanel()
{
//can = new MyCanvas();
//can.setBounds(0,0,WIDTH, HEIGHT-30);
//can.setBackground(Color.lightGray);
setLayout(new BorderLayout());
bottomPanel=new JPanel();
add(bottomPanel,BorderLayout.SOUTH);
bildPanel=new JPanel();
add(bildPanel,BorderLayout.CENTER);
bildPanel.setLayout(new GridLayout(0,1));
refreshButton=new JButton("refresh");
bottomPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
bottomPanel.add(refreshButton);
//add(bottomPanel,"South");
//add(bildPanel,"Center");
//panel1.add(bild);
//add(can,BorderLayout.CENTER);
//add(can);
refreshButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource() == refreshButton) {
bild = new Diagramm();
//bild.setString(st,st1);
//bild.setBounds(0,0,new SimpleFrame().WIDTH-50,new SimpleFrame().HEIGHT-50);
bild.setBounds(0,0,bildPanel.getWidth()-50,bildPanel.getHeight()-50);
bildPanel.add(bild);
//add(bild);
bild.repaint();
bild.setVisible(true); }
}
});
}
/*public double panelGroesse(){
Dimension x= bildPanel.getSize();
return x.getWidth();
}*/
}
Diagramm.java
PHP:
package deneme;
//import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
//import java.awt.geom.AffineTransform;
//import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
public class Diagramm extends JPanel{
private static final long serialVersionUID = 1L;
int w=new SimpleFrame().getWidth();
int h=new SimpleFrame().getHeight();
//int x=new DrawPanel().bildPanel.getWidth();
//int h=new DrawPanel().bildPanel.getHeight();
public void paint(Graphics graphics) {
//System.out.println(new DrawPanel().panelGroesse());
Graphics2D g = (Graphics2D) graphics;
//AffineTransform tx = new AffineTransform(1, 0, 0, -1, 0, getHeight());
//AffineTransform tx = new AffineTransform();
//tx.rotate(Math.PI);
//g.setTransform( tx );
g.setColor(Color.black);
g.translate(20, 20);
g.drawLine(0,h-150, w-150, h-150);//x-achse
g.fillArc(w-150, h-165, 30, 30, 165, 30); //horizontaler Pfeil
g.drawString("time",250 , 250);
g.drawLine(0,h-150, 0, 0);//y-achse
g.fillArc(-15, -20, 30, 30, 255, 30); //vertikaler Pfeil
g.drawString("modul",0 , 0);
}
}