Hallo,
mein Problem ist schlichtweg, dass die gemalten Linien ( g2.draw(new Line2D.Double(x1,y1,x2,y2)) ) nicht dargestellt werden.
Die Werte stimmen, die habe ich mir in die Konsole ausgeben lassen und auch der Debugger zeigt mir das er ganz normal die draw-Zeile durchgeht. Woran kann es liegen?
Folgender Aufbau:
Main.java (JFrame -> DrawPanel)
DrawPanel.java (mal-Methode)
Values.java (die zu zeichnenden Werte)
Der Aufruf zum malen geschiet ürbigens in einer while-Schleife, innerhalb einer ActionPerformed-Methode in der Main.Java
Da der Quelltext mittlerweile sehr groß ist hier nun das wichtigste:
Main.java
DrawPanel.java
Values.Java
mein Problem ist schlichtweg, dass die gemalten Linien ( g2.draw(new Line2D.Double(x1,y1,x2,y2)) ) nicht dargestellt werden.
Die Werte stimmen, die habe ich mir in die Konsole ausgeben lassen und auch der Debugger zeigt mir das er ganz normal die draw-Zeile durchgeht. Woran kann es liegen?
Folgender Aufbau:
Main.java (JFrame -> DrawPanel)
DrawPanel.java (mal-Methode)
Values.java (die zu zeichnenden Werte)
Der Aufruf zum malen geschiet ürbigens in einer while-Schleife, innerhalb einer ActionPerformed-Methode in der Main.Java
Da der Quelltext mittlerweile sehr groß ist hier nun das wichtigste:
Main.java
Code:
import try_02.DrawPanel;
import try_02.Values;
public class Main extends JFrame implements ActionListener, ItemListener, WindowListener {
DrawPanel canvas = new DrawPanel ();
public static void main(String[] args) {
Main mainWindow = new Main ();
}
public Main() {
super(" JAVA-Tool");
setLayout(gridbag);
addComponent(canvas, 1, 3, 5, 1, 25, 100, GridBagConstraints.BOTH,GridBagConstraints.CENTER);
setVisible(true);
}
private void addComponent(Component component, int gridx, int gridy, int gridwidth, int gridheight, int weightx, int weighty, int fill, int anchor) {
GridBagConstraints constraints = new GridBagConstraints();
constraints.gridx = gridx;
constraints.gridy = gridy;
constraints.gridwidth = gridwidth;
constraints.gridheight = gridheight;
constraints.weightx = weightx;
constraints.weighty = weighty;
constraints.fill = fill;
constraints.anchor = anchor;
constraints.ipadx = 2;
constraints.ipady = 0;
constraints.insets = new Insets(0, 0, 5, 0);
gridbag.setConstraints(component, constraints);
add(component);
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if( source == field) {
werte werden in values[i] gespeichert, jeder Punkt (X/Y) in eigenen array
i=1;
while (i < try_02.Values.getValueNumber() ) {
canvas.drawPoints(value[i-1].getX(),value[i-1].getY(),value[i].getX(),value[i].getY());
i++;
}
repaint();
}
DrawPanel.java
Code:
public class DrawPanel extends JPanel {
private static float PAD = 20, SPAD = 3, maxX = 10, maxY = 4;
private static int startTime = 0, endTime = 10;
private float x1, x2, y1, y2;
private static Graphics g3;
private static Graphics2D g2;
public void drawPoints(float inXa, float inYa, float inXb, float inYb) {
int w = getWidth(), h = getHeight();
float xInc = (float)(w - 2*PAD)/(2*maxX);
float yInc = (float)(h - 2*PAD)/(2*maxY);
Graphics2D g2 = (Graphics2D)g3;
g2.setPaint(Color.red);
g2.draw(new Line2D.Double(inXa*xInc + PAD, PAD + (maxY*2 - inYa)*yInc, inXb*xInc + PAD, PAD + (maxY*2 - inYb)*yInc));
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g3 = g;
}
}
Values.Java
Code:
public class Values {
private static float maxValue = 0, minValue = 0;
private static int valueNumber = 0;
private float x = 0;
private float y = 0;
public Values() {
}
public void setX(float input) {
x = input;
valueNumber++;
}
public void setY(float input) {
y = input;
}
public static int getValueNumber() {
return valueNumber;
}
public static float getMaxValue() {
return maxValue;
}
public static float getMinValue() {
return minValue;
}
public float getX() {
return x;
}
public float getY() {
return y;
}
}