moin
also folgendes:
ich habe ein kleines applet geschrieben welches von ner kamera nen bild holt und auf nem label anzeigt ...
das ganze soll in nem thread laufen der die bilder abholt...
mein problem: wenn ich das applet ausführen will compiliert er es nicht bzw nur selten ...
also ich hab jetzt folgenden code:
als fehlermeldung bekomm ich :
The method removeThread(MultiCamThread)
^^ diese zeile hab ich schon vor 5 min raus geschmiessen aber er compiliert es einfach net neu....
wie muss ich in eclipse vorgehn damit er mir immer jedesmal vor dem ausführen den code neu compiliert ... weil ich sitz hier wunder mich warum es net geht und dann seh ich das das überhaupt net der aktuelle code is den er da verwenden will is doch zum junge hunde kriegen...
also thx für hilfe
mfg Kala
also folgendes:
ich habe ein kleines applet geschrieben welches von ner kamera nen bild holt und auf nem label anzeigt ...
das ganze soll in nem thread laufen der die bilder abholt...
mein problem: wenn ich das applet ausführen will compiliert er es nicht bzw nur selten ...
also ich hab jetzt folgenden code:
Code:
package AVS3;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import javax.swing.JButton;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JApplet;
import javax.swing.*;
import java.awt.Dimension;
public class APPAnzeigeLiveBild extends JApplet {
boolean setgo=false;
boolean thread_is_start=false;
private JPanel jContentPane = null;
private JLabel jLabelBild = null;
private JButton jButtonConsoleStart = null;
private JButton jButtonConsoleStop = null;
private JPanel jEast = null;
private JPanel jEastC = null;
private JPanel jCenter = null;
public Lock lock = new ReentrantLock(); // @jve:decl-index=0:
public String ip = ""; // @jve:decl-index=0:
int mainframe_x=0;
int mainframe_y=0;
int bild_breite=0;
int bild_hoehe=0;
public APPAnzeigeLiveBild() {
super();
}
public JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJCenter(), BorderLayout.CENTER);
jContentPane.add(getJEast(), BorderLayout.EAST);
jContentPane.validate();
}
return jContentPane;
}
private JPanel getJCenter() {
if (jCenter == null) {
jLabelBild = new JLabel();
jCenter = new JPanel();
jCenter.setLayout(new BorderLayout());
jCenter.setPreferredSize(new Dimension(100, 100));
jCenter.setBackground(Color.green);
jCenter.add(jLabelBild,BorderLayout.CENTER);
jCenter.setVisible(true);
}
return jCenter;
}
private JPanel getJEast() {
if (jEast == null) {
jEast = new JPanel();
jEast.setLayout(new BorderLayout());
jEast.setPreferredSize(new Dimension(100, 100));
jEast.setBackground(Color.cyan);
jEast.add(getJEastC(),BorderLayout.CENTER);
jEast.setVisible(true);
}
return jEast;
}
private JPanel getJEastC() {
if (jEastC == null) {
jEastC = new JPanel();
jEastC.setLayout(null);
jEastC.setPreferredSize(new Dimension(100, 100));
jEastC.setBackground(Color.blue);
jEastC.add(getJButtonConsoleStart(),null);
jEastC.add(getJButtonConsoleStop(),null);
jEastC.setVisible(true);
}
return jEastC;
}
private JButton getJButtonConsoleStart() {
if (jButtonConsoleStart == null) {
jButtonConsoleStart = new JButton();
jButtonConsoleStart.setText("Start");
jButtonConsoleStart.setVisible(true);
jButtonConsoleStart.setPreferredSize(new Dimension(80, 20));
jButtonConsoleStart.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
startIt();
}
});
}
return jButtonConsoleStart;
}
private JButton getJButtonConsoleStop() {
if (jButtonConsoleStop == null) {
jButtonConsoleStop = new JButton();
jButtonConsoleStop.setPreferredSize(new Dimension(80, 20));
jButtonConsoleStop.setText("Stop");
jButtonConsoleStop.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
stopIt();
}
});
}
return jButtonConsoleStop;
}
public Thread runner = new Thread() {
public void run() {
while (setgo) {
System.out.println("test");
try {
jLabelBild.setIcon(Lade_Bild());
try {
sleep(10L);
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
runner.notify();
}
};
public void startIt() {
setgo=true;
runner.start();
}
private void stopIt() {
setgo=false;
}
public ImageIcon Lade_Bild(){
Socket sock=null;
BufferedOutputStream out=null;
BufferedInputStream in=null;
String[] rueck;
int hoehe;
int breite;
byte[] bild;
ImageIcon ico1=null;
try { //Verbindung mit dem Cam herstellen
sock = new Socket(ip, 10000); //Hier die Domain eintragen
out = new BufferedOutputStream(sock.getOutputStream());
in = new BufferedInputStream(sock.getInputStream());
//der folgende String enthält die zu übergebenden Variablen
String uebergabe = "getimagesize\n";
out.write(uebergabe.getBytes());
out.flush();
byte[] b = new byte[25];
rueck = new String[25];
int anz=0;
int anz_off_b=0;
anz_off_b = in.read(b,0,b.length);
for(int i=0; i<anz_off_b; i++){
String eing=""+(char) b[i];
String vergl=" ";
if((eing.compareToIgnoreCase(vergl)==0)||(eing.compareToIgnoreCase("\n")==0)){
anz=anz+1;
}else{
if(rueck[anz]!=null){
rueck[anz]=rueck[anz]+""+eing;
}else{
rueck[anz]=""+eing;
}
}
}
breite = Integer.parseInt(rueck[1]);
hoehe = Integer.parseInt(rueck[2]);
int b_groesse = breite*hoehe;
bild = new byte[b_groesse];
in.close();
out.close();
sock.close();
sock = new Socket(ip, 10000); //Hier die Domain eintragen
out = new BufferedOutputStream(sock.getOutputStream());
in = new BufferedInputStream(sock.getInputStream());
String uebergabe1 = "snap\n";
out.write(uebergabe1.getBytes());
out.flush();
int anz_off=0;
int anz_off_new=0;
int off=0;
int leng=b_groesse;
anz_off = in.read(bild,off,leng);
anz_off_new = anz_off;
while (anz_off<b_groesse){
off = anz_off;
leng = leng - anz_off_new;
anz_off_new = in.read(bild,off,leng);
anz_off=anz_off+anz_off_new;
}
in.close();
out.close();
sock.close();
//TODO: data Array mit Grauwerten füllen
BufferedImage img = new BufferedImage(breite, hoehe, BufferedImage.TYPE_BYTE_GRAY);
img.getRaster().setDataElements(0, 0, breite, hoehe, bild);
ico1 = new ImageIcon(img);
} catch (IOException ex) {
System.err.println("41"+ex.toString());
//System.exit(1);
}finally{
try{
if(in != null){
in.close();
}
if(out != null){
out.close();
}
if(sock != null){
sock.close();
}
} catch (IOException ex) {
System.err.println("5"+ex.toString());
System.exit(1);
}
}
return ico1;
}
public void init() {
ip=""+getCodeBase().getHost();
//ip="10.0.88.150";
this.setContentPane(getJContentPane());
}
public void start() {
}
public void stop() {
stopIt();
}
public void destroy() {
stopIt();
}
public void paint(Graphics g) {
startIt();
}
}
als fehlermeldung bekomm ich :
Code:
java.lang.Error: Unresolved compilation problem:
The method removeThread(MultiCamThread) in the type APPAnzeigeLiveBild is not applicable for the arguments (new Thread(){})
at AVS3.APPAnzeigeLiveBild.<init>(APPAnzeigeLiveBild.java:134)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
The method removeThread(MultiCamThread)
^^ diese zeile hab ich schon vor 5 min raus geschmiessen aber er compiliert es einfach net neu....
wie muss ich in eclipse vorgehn damit er mir immer jedesmal vor dem ausführen den code neu compiliert ... weil ich sitz hier wunder mich warum es net geht und dann seh ich das das überhaupt net der aktuelle code is den er da verwenden will is doch zum junge hunde kriegen...
also thx für hilfe
mfg Kala