hi leute
ich habe folgendes problem:
ich möchte daten in einem fenster ausgeben. dieses fenster ist ein internalframe. in diesem internalframe befindet sich ein scrollpane und in diesem wird dann der graph (wieder in einem pane) gezeichnet. ich habe in einem anderem forum gelesen, dass wenn der inhalt des scrollpane grösser als es selbst ist, dann werden die scrollbalken automatisch hinzugefügt. leider ist es bei mir nicht so? was könnten dafür die ursachen sein?
ich hoffe der code wird vernünftig dargestellt.
falls mir einer von euch helfen kann, wäre das spitze, oder vielleicht weiß auch einer von euch unterlagen, tutorials oder bücher, welche sich mit diesem thema beschäftigen.
danke im vorraus,
jopp
ich habe folgendes problem:
ich möchte daten in einem fenster ausgeben. dieses fenster ist ein internalframe. in diesem internalframe befindet sich ein scrollpane und in diesem wird dann der graph (wieder in einem pane) gezeichnet. ich habe in einem anderem forum gelesen, dass wenn der inhalt des scrollpane grösser als es selbst ist, dann werden die scrollbalken automatisch hinzugefügt. leider ist es bei mir nicht so? was könnten dafür die ursachen sein?
Code:
class PrintData extends JInternalFrame {
public PrintData () {
super("test graph", true, true, true, true);
setSize(600,300);
Dimension dmax = new Dimension(700,300);
setMaximumSize(dmax);
JScrollPane sp = new JScrollPane();
sp.setSize(600,300);
sp.setLayout(null);
//sp.setHorizontalScrollBar(new JScrollBar());
sp.add(new TestGraph());
sp.setVisible(true);
getContentPane().add(sp);
setVisible(true);
MainFrame.desk.add(this);
show();
}
}
public class TestGraph extends JPanel {
public TestGraph () {
setSize(900,600);
}
public void paintComponent (Graphics g) {
super.paintComponent(g);
super.setSize(900,600);
Graphics2D g2 = (Graphics2D)g;
int[] data = null;
int s = 0;
int r = 0;
//an dieser Stelle werden die Daten aus einer Datenbank gelesen und in data geschrieben
int x0 = 30;
int y0 = 150;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Shape xline = new Line2D.Double(x0,10,x0,170);
Shape yline = new Line2D.Double(10,y0,590,y0);
g2.setPaint(Color.blue);
g2.draw(xline);
g2.draw(yline);
int x1 = 0;
int x2 = 0;
int y1 = 0;
int y2 = 0;
System.out.println(s);
System.out.println(r);
for(int z = 0 ; z < r-1 ; z++) {
x1 = x0 + 1*z;
x2 = x1 + 1;
y1 = y0 - 1*(int)data[z];
y2 = y0 - 1*(int)data[z+1];
System.out.println("x1: "+x1+" y1: "+y1+" x2: "+x2+" y2: "+y2);
Shape linexy = new Line2D.Double(x1,y1,x2,y2);
g2.setPaint(Color.red);
System.out.println("Color = red");
g2.draw(linexy);
y1 = 0;
y2 = 0;
}
}
}
ich hoffe der code wird vernünftig dargestellt.
falls mir einer von euch helfen kann, wäre das spitze, oder vielleicht weiß auch einer von euch unterlagen, tutorials oder bücher, welche sich mit diesem thema beschäftigen.
danke im vorraus,
jopp