hi leute
ich kämpfe jetzt schon sehr lange mit diesem ScrollPane und einen Graphen, welchen ich darin ausgeben will, aber ich bekomme es einfach nicht hin. ich habe schon alles mögliche ausprobiert, aber ich schaffe es einfach nicht.
kurze erklärung zum aufbau des programms.
jframe - mit jdesktoppane und defaultdektopmanager als layoutmanager
darin ein internalframe in welchem ein jpanel ist und in diesem soll der graph gezeichnet werden.
ich habe hier kurz das programm aufgelistet.
die daten werden aus einer access datenbank ausgelesen. es sind ungefähr 1290 daten.
vielleicht kann mir einer von euch helfen. ich hoffe es zumindest.
danke
jopp
ich kämpfe jetzt schon sehr lange mit diesem ScrollPane und einen Graphen, welchen ich darin ausgeben will, aber ich bekomme es einfach nicht hin. ich habe schon alles mögliche ausprobiert, aber ich schaffe es einfach nicht.
kurze erklärung zum aufbau des programms.
jframe - mit jdesktoppane und defaultdektopmanager als layoutmanager
darin ein internalframe in welchem ein jpanel ist und in diesem soll der graph gezeichnet werden.
ich habe hier kurz das programm aufgelistet.
Code:
package hilfe;
import javax.swing.*;
import java.sql.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
public class HauptFenster extends JFrame {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
new HauptFenster();
}
public HauptFenster() {
super("HILFE");
setSize(600, 300);
setLocation(300, 300);
JDesktopPane desk = new JDesktopPane();
this.getContentPane().add(desk);
desk.setDesktopManager(new DefaultDesktopManager());
JInternalFrame jif = new JInternalFrame("GRAPH", true, true, true, true);
jif.setSize(400,300);
getContentPane().add(jif);
jif.getContentPane().add(new JScrollPane(new JPanel(null, true).add(new Graph())));
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
});
jif.setVisible(true);
setVisible(true);
}
}
class Graph extends Component {
public Graph() {
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
int[] data = null;
int s = 0;
int r = 0;
try {
Connection dbConn;
Driver d = (Driver) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String URL = "jdbc:odbc:" + "CMSC446";
dbConn = DriverManager.getConnection(URL, "nouser", "nopassword");
System.out.println("db Connected...\n");
// Java SQL objects...
Statement stmt;
stmt = dbConn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT value FROM data WHERE dataid = 0");
while(rs.next()) {
s++;
}
data = new int[s];
rs = stmt.executeQuery("SELECT value FROM data WHERE dataid = 0");
while(rs.next()) {
data[r] = rs.getInt("value");
r++;
}
}
catch (Exception e) {
System.out.println("Read: " + e);
}
int x0 = 30;
int y0 = 150;
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;
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];
Shape linexy = new Line2D.Double(x1,y1,x2,y2);
g2.setPaint(Color.red);
g2.draw(linexy);
y1 = 0;
y2 = 0;
}
}
}
die daten werden aus einer access datenbank ausgelesen. es sind ungefähr 1290 daten.
vielleicht kann mir einer von euch helfen. ich hoffe es zumindest.
danke
jopp