No právě že potřebuji pořád načítat jeden obrázek z URL, ale když se zmáčkne tlačítko Gui, tak se přeruší načítání obrázku a provede se reakce na tlačítko.
Jdu na to určitě dobře.
Mám prostě 20 tlačítek v gui a jejich reakce potřebuju nacpat do toho vlákna v Main. Toť vše.
Dostal jsem rady jakože vytvořit si seznam příkazů, sledovat reakci Gui na stisk tlačítka a tuto rekci provést. Nejsem programátor, takže absolutně nechápu.
Příspěvky odeslané z IP adresy 94.113.227.–
Potřebuji aby moje vlastní vytvořené vlákno v Commands.java (klidně i Main.java) reagovalo na stisk tlačítka v Gui.java. Jak doplnit toto vlákno?
class ThreadOne extends Thread {
ThreadOne() {
super("ThreadOne");
start();
}
public void run() {
try {
URL url = new URL(http);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
inputStream.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
}
}
Prostě potřebuji aby vlákno stále běželo a změnilo rekci podle tlačítka z Gui. Jinak reakce na tlačítko v Gui je právě změna proměnné http, to je jediná změna kterou potřebuji.
Měl bych dotaz jak zajistit komunikaci mezi Main a Gui s komponentou Item Listener?
Chci aby byl veškerý kód zapsán v Main a do Gui se jen odkazovalo.
V Gui.java tedy:
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
Main.JComboBox1ActionPerformed(evt);
}
V Main.java:
public static void JComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1.addItemListener(this);
compres = combo;
...
}
No ale v Main jComboBox1.addItemListener(this); hlásí chybu non-static variable. V Gui jsem měl Item Listener vyřešený tak že funguje, ale v Main se mi to nedaří, i když jsem přenesl všechno jako implements ItemListener a
public void itemStateChanged (ItemEvent change) {
combo = change.getItem().toString();
}
Co s tím? Jak se z Main odkážu na komponentu v Gui?
Zdravím,
řeším problém, jak poslat CGI příkaz "http://192.168.1.110/camera-cgi/com/ptz.cgi?move=up" kameře připojené přes ethernet k počítači.
Příkaz by měl pohnout s motorizovanou kamerou nahoru. Příkaz bych chtěl provést jako reakci na stisk tlačítka. Příkaz je vlastně URL adresa...počítač je klient, kamera server...
Děkuji za každou pomoc.
Zdravím,
pracuji na programu pro ovládání IP kamery Edimax IC7000PT. Kamera se ovládá pomocí CGI příkazů. Na ty mám příručku. Problémem vidím v přihlášení se ke kameře a správnosti příkazu.
1. Je správně část kódu pro reakci na stisk tlačítka?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
Authenticator.setDefault (new MyAuthenticator()); //prihlášení
URL up = new URL("http://192.168.1.110/camera-cgi/com/ptz.cgi?move=up"); //CGI příkaz
URLConnection upConnection = up.openConnection();
upConnection.connect();
} catch (MalformedURLException e) { // new URL() failed
} catch (IOException e) { // openConnection() failed
}
2. je správně kdy v Main mám část přihlášení a v Gui se na něj odkazuji jen tím Authenticator.setDefault (new MyAuthenticator());?
Toto je v Main:
public static class MyAuthenticator extends Authenticator{
// metoda volaná pro zabezpečené URL
protected PasswordAuthentication getPasswordAuthentication()
{ // informace o přijetí
String promptString = getRequestingPrompt();
String hostname = getRequestingHost();
InetAddress ipaddr = getRequestingSite();
int port = getRequestingPort(); // Get the username from the user...
String username = "admin"; // Get the password from the user...
String password = "1234"; // Return the information
return new PasswordAuthentication(username, password.toCharArray());
}
}
Tímto se odkazuji:
Authenticator.setDefault (new MyAuthenticator());
Poznámka: Kameře nejde přihlašování pod jménem a heslem zrušit.
Děkuji předem za jakoukoliv pomoc.