hi leute
ich habe probleme mit einen programm. und zwar schaffe ich es nicht scrollbalken in mein internalframe einzubinden. der graph ist aber eindeutig grösser als das scrollpane und somit sollten balken erzeugt werden.
hier der code:
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;
}
}
}
vielleicht weiß einer von euch die lösung
wäre echt dankbar. ich kämpfe nun schon seit tagen damit.
danke im vorraus
jopp