Hallo,
Ich habe folgendes kleines Problem:
Dieser Quellcode funktioniert einwandfrei...er zeigt Bilder einer Webcam an. (In einem JFrame)
Jetzt will ich das aber so haben, dass ich von einem anderen JFrame diesen Frame öffene ( indem ich auf einen Button klicke)
Wenn ich allerdings den Code der Main Methode in die Action Performed Methode schreibe, öffnet sich zwar der Frame, aber ich sehe keine Bilder ? ( Die alte Main Methode lösche ich natürlich schon...)
Code des anderen Frames:
Kann mir einer bei diesem Problem helfen ?
Danke jedenfalls
sg dh
Ich habe folgendes kleines Problem:
Dieser Quellcode funktioniert einwandfrei...er zeigt Bilder einer Webcam an. (In einem JFrame)
Code:
import java.io.*;
import java.net.*;
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame{
Image image = null;
public void request(String u1 ){
try{
HttpURLConnection connection = null;
InputStream in = null;
URL url = new URL(u1);
connection = (HttpURLConnection)url.openConnection();
in = connection.getInputStream();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream ();
byte[] buffer = new byte[connection.getContentLength()];
int length = -1;
BufferedInputStream bis = new BufferedInputStream(in);
while( (length = in.read(buffer)) > 0 ) {
byteArrayOutputStream.write(buffer,0,length);
}
byteArray = byteArrayOutputStream.toByteArray();
image = Toolkit.getDefaultToolkit().createImage(byteArray).getScaledInstance(640,480,1);
repaint();
in.close();
byteArrayOutputStream.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
public void paint(Graphics g) {
if (image!=null) g.drawImage(image, 0, 0, this);
}
public static void main(String[] args) throws Exception {
String u1 = "http://aleksandriacamot.it.helsinki.fi/jpg/image.jpg";
Test t = new Test();
t.show();
t.setSize(640,480);
while(true)
{
t.request(u1);
Thread.sleep(100)
}
}
}
Jetzt will ich das aber so haben, dass ich von einem anderen JFrame diesen Frame öffene ( indem ich auf einen Button klicke)
Wenn ich allerdings den Code der Main Methode in die Action Performed Methode schreibe, öffnet sich zwar der Frame, aber ich sehe keine Bilder ? ( Die alte Main Methode lösche ich natürlich schon...)
Code des anderen Frames:
Code:
public class UserNetcam extends javax.swing.JFrame {
public UserNetcam() {
initComponents();
setSize(800,600);
}
private void initComponents() {
jButton1 = new javax.swing.JButton();
getContentPane().setLayout(new java.awt.FlowLayout());
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jButton1.setText("Open Frame");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
pack();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// Und genau hier ist das Problem....der Code der Main Methode funktioniert irgendwie nicht ganz...
String u1 = "http://aleksandriacamot.it.helsinki.fi/jpg/image.jpg";
Test t = new Test();
t.show();
t.setSize(640,480);
while(true)
{
t.request(u1);
}
}
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}
public static void main(String args[]) {
new UserNetcam().show();
}
private javax.swing.JButton jButton1;
Kann mir einer bei diesem Problem helfen ?
Danke jedenfalls
sg dh