Hallo Forum,
mein Programm das eine Datei ausließt und in einer TextArea (die in einem Frame is) ausgibts, ist fertig.
Funktioniert eigentlich alles wie es soll.
ABER: Da ich blutiger Anfänger bin würde ich gerne wissen was man an meinem Code vielleicht noch verbessern könnte bzw ordentlicher schreiben könnte.
Hier mein aktueller Code
Im Bezug auf das Finally: Ich weis absolut nicht warum ich das hier brauch. Ich hab mich informiert und verstehe wofür das Finally steht. Ich weis auch das es normalerweise optional ist. Aber mein Eclipse meckert wenn ich es rausnehme.
mein Programm das eine Datei ausließt und in einer TextArea (die in einem Frame is) ausgibts, ist fertig.
Funktioniert eigentlich alles wie es soll.
ABER: Da ich blutiger Anfänger bin würde ich gerne wissen was man an meinem Code vielleicht noch verbessern könnte bzw ordentlicher schreiben könnte.
Hier mein aktueller Code
Java:
public class PopUpTest2 {
static JFrame frame;
static JTextArea ta;
static ArrayList<String> list1;
static StringBuilder sb;
public static void main(String[] args) throws IOException {
try {
list1 = new ArrayList<String>();
sb = new StringBuilder();
PopUpTest2 db = new PopUpTest2();
final String pfad = JOptionPane.showInputDialog(frame,"Pfad zur status.dat: ");
String hosts = JOptionPane.showInputDialog(frame,"Wie viel Hosts werden benutzt: ");
final int eingabeAnzahl = Integer.parseInt(hosts);
ScheduledExecutorService executor=Executors.newScheduledThreadPool(1);
executor.scheduleWithFixedDelay(new Runnable(){
public void run() {
try {
ta.setText("");
list1.clear();
BufferedReader br = new BufferedReader(new FileReader(pfad));
int anzahlStatus = 0;
String lesen = br.readLine();
while((lesen = br.readLine()) != null && anzahlStatus < eingabeAnzahl)
{
if(lesen.contains("host_name="))
{
list1.add(lesen);
}
if(lesen.contains("current_state="))
{
anzahlStatus++;
}
if(lesen.contains("current_state=0"))
{
list1.add(", OK");
list1.add("\r\n");
}
if(lesen.contains("current_state=1"))
{
list1.add(", WARNING");
list1.add("\r\n");
}
if(lesen.contains("current_state=2"))
{
list1.add(", CRITICAL");
list1.add("\r\n");
}
if(lesen.contains("current_state=3"))
{
list1.add(", UNKNOWN");
list1.add("\r\n");
}
}
}
catch (FileNotFoundException e)
{
JOptionPane.showMessageDialog(frame,"Datei wurde nicht gefunden!");
}
catch (IOException e)
{
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable(){
public void run() {
for(int i=0;i<list1.size();i++)
{
ta.append(list1.get(i));
}
}
});
}
},0, 60, TimeUnit.SECONDS);
}
finally {
}
}
//Aufbau des Fensters
public PopUpTest2() {
frame = new JFrame ("IcingaInfo");
ta = new JTextArea();
frame.setSize(400, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(ta);
ta.setEditable(false);
}
}
Im Bezug auf das Finally: Ich weis absolut nicht warum ich das hier brauch. Ich hab mich informiert und verstehe wofür das Finally steht. Ich weis auch das es normalerweise optional ist. Aber mein Eclipse meckert wenn ich es rausnehme.