ich muss arrays machen, damit ich nachher den inhalt vergleichen kann! aber wie mache ich das!?
also augangslage dafür sind 2 verschiedene variablen, und zwar aktive clients und alle clients! um die nicht aktivierten clients auszugeben muss ich mit array einen vergleich machen! doch ich hab nicht so viel ahnung von arrays! wie kann ich die arrays richtig erstellen und wie kann ich sie miteinander vergleichen, so das das resultat alle clients minus die aktiven clients ist!?
hier der code für die aktiven clients:
dies ist der code für alle clients:
also augangslage dafür sind 2 verschiedene variablen, und zwar aktive clients und alle clients! um die nicht aktivierten clients auszugeben muss ich mit array einen vergleich machen! doch ich hab nicht so viel ahnung von arrays! wie kann ich die arrays richtig erstellen und wie kann ich sie miteinander vergleichen, so das das resultat alle clients minus die aktiven clients ist!?
hier der code für die aktiven clients:
Code:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.table.DefaultTableModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
public class ListActCl extends JButton implements ActionListener {
private DefaultTableModel model = null;
private JTable table = null;
private JFrame frame = null;
private String clients = null;
boolean tableCreated;
boolean actClients;
Pattern pattern;
Matcher matcher;
public ListActCl(){
//Übergabe vom Commando imgr active clients
try
{
Process p = Runtime.getRuntime().exec("/opt/NXOSI/bin/imgr list aclients");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
//Hier wird abgefragt ob der Wert der Variabel clients ungleich null ist.wenn ja, dann wird Table aufgeruffen
actClients = false;
tableCreated = false;
while ((clients = in.readLine()) != null)
{
actClients = true;
pattern = Pattern.compile("isc[0-9]+[ \t]+");
matcher = pattern.matcher(clients);
clients = matcher.replaceFirst("");
pattern = Pattern.compile("[ \t].*");
matcher = pattern.matcher(clients);
clients = matcher.replaceFirst("");
if (tableCreated == false){
Table();
tableCreated = true;
}
model.addRow(new Object[]{clients});
System.out.println(clients);
}
//Falls die abfrage der Variabel clients, null ergibt, wird die Funktion SorryFrame ausgeführt.
if(actClients == false){
Frame();
//Table();
System.out.println("no active clients");
}
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
//hier wird die Tabelle aufgerufen, in der die Clients dann augelistet werden.
public void Table(){
model = new DefaultTableModel();
table = new JTable(model);
model.addColumn("clients");
}
//Diese Funktion speicher den Wert von table und gibt in dann an Frame weiter
public JTable getTable(){
return table;
}
//Dieses Fenster wird ausgegeben, wenn keine Clients vorhanden sind
public void Frame(){
frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,3));
JLabel label = new JLabel("ERROR: NO ACTIVE CLIENTS");
JButton button = new JButton("OK");
button.addActionListener(this);
button.setActionCommand("OK");
frame.getContentPane().add(panel, BorderLayout.CENTER);
panel.add(label);
panel.add(button);
frame.setTitle("ERROR");
frame.setVisible(true);
frame.pack();
frame.setLocation(600, 500);
frame.setSize(300,100);
}
//Dies ist die Funktion vom JButton sorrybutton, mit dem die Funktion Frame geschlossen wird.
public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "OK") {
frame.dispose();
}
}
}
dies ist der code für alle clients:
Code:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.table.DefaultTableModel;
public class ListCli extends JButton implements ActionListener {
private JTable table = null;
private JFrame frame = null;
private String clients = null;
boolean tableCreated;
private DefaultTableModel model = null;
boolean Clients;
public ListCli(){
//Übergabe vom Commando imgr list clients
try
{
Process p = Runtime.getRuntime().exec("/opt/NXOSI/bin/imgr list clients");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
//Hier wird abgefragt ob der Wert der Variabel clients ungleich null ist.wenn ja, dann wird Table aufgeruffen
Clients = false;
tableCreated = false;
while ((clients = in.readLine()) != null)
{
Clients = true;
if (tableCreated == false){
Table();
tableCreated = true;
}
model.addRow(new Object[]{clients});
System.out.println(clients);
}
//Falls die abfrage der Variabel clients, null ergibt, wird die Funktion SorryFrame ausgeführt.
if(Clients == false){
Frame();
//Table();
System.out.println("no active clients");
}
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
//hier wird die Tabelle aufgerufen, in der die Clients dann augelistet werden.
public void Table(){
model = new DefaultTableModel();
table = new JTable(model);
model.addColumn("clients");
}
//Diese Funktion speicher den Wert von table und gibt in dann an Frame weiter
public JTable getTable(){
return table;
}
//Dieses Fenster wird ausgegeben, wenn keine Clients vorhanden sind
public void Frame(){
frame = new JFrame();
frame.getContentPane().setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3,3));
JLabel label = new JLabel("ERROR: NO CLIENTS");
JButton button = new JButton("OK");
button.addActionListener(this);
button.setActionCommand("OK");
frame.getContentPane().add(panel, BorderLayout.CENTER);
panel.add(label);
panel.add(button);
frame.setTitle("ERROR");
frame.setVisible(true);
frame.pack();
frame.setLocation(600, 500);
frame.setSize(300,100);
}
//Dies ist die Funktion vom JButton sorrybutton, mit dem die Funktion Frame geschlossen wird.
public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "OK") {
frame.dispose();
}
}
}