Hallo allerseits ,
ich benötige eure Hilfe bitte.
Ich habe 5 Threads hergestellt und möchte wissen wie ich die vewalten kann. Zum Beispiel , wenn ich auf diesen Knopf drücke, sollt nur ein Button getroffen werden. ich habe 5 Buttons. ein Knopf ist für scan , Resultat exportieren , importieren , Database anzeigen. und wenn ich beispielweise auf den Knopf " Scan " drücken wird die Aktion durchgeführt aber ich aber bemerkt ,dass ich gleichzeitig auf den Knopf "Show database" drücke funktioniert auch. Ich will , dass nur ein gedrückter Knopf gleichzeitig funktioniert. Unter ist mein Quellcode.
Ich danke Euch im Voraus für eure Hilfe.
Liebe Grüße.
ich benötige eure Hilfe bitte.
Ich habe 5 Threads hergestellt und möchte wissen wie ich die vewalten kann. Zum Beispiel , wenn ich auf diesen Knopf drücke, sollt nur ein Button getroffen werden. ich habe 5 Buttons. ein Knopf ist für scan , Resultat exportieren , importieren , Database anzeigen. und wenn ich beispielweise auf den Knopf " Scan " drücken wird die Aktion durchgeführt aber ich aber bemerkt ,dass ich gleichzeitig auf den Knopf "Show database" drücke funktioniert auch. Ich will , dass nur ein gedrückter Knopf gleichzeitig funktioniert. Unter ist mein Quellcode.
Java:
// Action for each buttonclick
@Override
public void actionPerformed(ActionEvent a) {
Object source = a.getSource();
if (source ==b) {
Runnable runnable = new Runnable() {
@Override
public void run() {
p1 = t.getText();
p2 = t1.getText();
// condition on Textfield t and t1
if (t == null && t1 == null || p1.isEmpty() || p2.isEmpty() || p1.isBlank() || p2.isBlank()) {
JOptionPane.showMessageDialog(null, " please fill in the address fields 1 and 2");
} else {
byte[] ip1 = ipv4ToBytes(p1);
byte[] ip2 = ipv4ToBytes(p2);
Runnable r1 = new Runnable() {
@Override
public void run() {
byte[] a = ip1;
while (true) {
try {
synchronized (p2) {
if (isNotEquals(a, ip2)) {
String s = bytesToIpv4(a);
InetAddress ad = InetAddress.getByName(s);
if (ad.isReachable(timeout))
insertdb("INSERT INTO Adresse (Ip,HostName,ThreadNummer) VALUES (?,?,?)", s, ad.getHostName(), 1);
count(a);
} else {
break;
}
}
} catch (IOException e) {
}
}
}
};
Runnable r2 = new Runnable() {
@Override
public void run() {
byte[] a = ip2;
while (true) {
try {
synchronized (p1) {
if (isNotEquals(a, ip1)) {
String s = bytesToIpv4(a);
InetAddress ad = InetAddress.getByName(s);
if (ad.isReachable(timeout))
insertdb("INSERT INTO Adresse (Ip,HostName,ThreadNummer) VALUES (?,?,?)", s, ad.getHostName(), 2);
count2(a);
} else {
break;
}
}
} catch (IOException e) {
}
}
}
};
new Thread(r1).start();
new Thread(r2).start();
}
}
};
new Thread(runnable).start();
}
// press on the button 2
else if (source == b1 ) {
Runnable runnable1 = new Runnable() {
@Override
public void run() {
t3.append("The informations are:\n");
t3.append("*****************************************************\n");
show("SELECT * FROM Adresse");
t3.append("*****************************************************\n");
}
};
new Thread(runnable1).start();
}
else if (source==b3) {
Runnable runnable2 = new Runnable() {
@Override
public void run() {
Pdelete = t2.getText();
if (t2 == null || Pdelete.isEmpty()) {
JOptionPane.showMessageDialog(null, " This case is empty, please, give a value!");
} else {
try {
delete(" DELETE FROM Adresse WHERE Ip=? ", Pdelete);
String update = "UPDATE FROM Adresse WHERE Ip=?";
st = conn.prepareStatement(update);
st.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
};
new Thread(runnable2).start();
}
else if(source==bexport) {
Runnable runnable3 = new Runnable() {
@Override
public void run() {
dbexport(new File("C:\\Users\\Chris-Pc\\Desktop\\Output.csv"));
}
};
new Thread(runnable3).start();
}
else if (source ==bimport) {
final Runnable runnable4 = new Runnable() {
@Override
public void run() {
dbimport();
}
};
new Thread(runnable4).start();
}
else if (source == b4) {
Runnable run5 = new Runnable() {
@Override
public void run() {
ping();
}
};
new Thread(run5).start();
}
else {
System.exit(99);
}
}
Ich danke Euch im Voraus für eure Hilfe.
Liebe Grüße.
Zuletzt bearbeitet: