Hi,
ich hab hier ein kleines Programm geschrieben, dass anhand einer Datei "drucker.txt" ein sagen wir mal DruckerPanel erstellt.
Im Moment ist es noch so, dass die Datei eingelesen wird, sobald ich auf den Button "Wählen" klicke. Ich möchte eigentlich, dass die Datei sofort beim öffnen des Frames eingelesen wird und mir je nachdem dann die einzelnen Druckerpanels angezeigt werden.
Wie kann ich das denn machen, dass ich den BufferedReader da einbinde, ohne ihn extra in ne neue Klassendatei zu schreiben?
Hier mal mein Code:
Wär cool wenn mir einer von euch weiterhelfen könnte! Danke schonmal!
Gruß Tobi
ich hab hier ein kleines Programm geschrieben, dass anhand einer Datei "drucker.txt" ein sagen wir mal DruckerPanel erstellt.
Im Moment ist es noch so, dass die Datei eingelesen wird, sobald ich auf den Button "Wählen" klicke. Ich möchte eigentlich, dass die Datei sofort beim öffnen des Frames eingelesen wird und mir je nachdem dann die einzelnen Druckerpanels angezeigt werden.
Wie kann ich das denn machen, dass ich den BufferedReader da einbinde, ohne ihn extra in ne neue Klassendatei zu schreiben?
Hier mal mein Code:
Code:
//DruckPanel.java
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class DruckPanel extends JPanel{
// Die RadioButtons zum Auswählen des Druckers
private JRadioButton LPT2b = new JRadioButton();
private JRadioButton LPT3b = new JRadioButton();
private JRadioButton LPT4b = new JRadioButton();
private JRadioButton LPT1b = new JRadioButton();
//Das Panel für die Überschrift
private JLabel PRT = new JLabel("Druckername");
private JLabel RN = new JLabel("Raum");
private JLabel OO = new JLabel("online");
private JLabel LL = new JLabel("");
//ButtonGroup, damit immer nur einer ausgewählt sein kann
private ButtonGroup gruppe = new ButtonGroup();
//Variablen für die Druckernamen
String PRT1,PRT2,PRT3,PRT4;
//Variablen für den Raumnamen
String RaN1,RaN2,RaN3,RaN4;
//Variablen für den Status (online oder offline)
String St1,St2,St3,St4;
//Die Datei aus der gelesen werden soll (hier fest)
private static String filename = "drucker.txt";
//Die einzelnen Labels für die Drucker (kommt einer Zeile gleich nach dem einfügen)
private JLabel DN1 = new JLabel();
private JLabel DN2 = new JLabel();
private JLabel DN3 = new JLabel();
private JLabel DN4 = new JLabel();
private JLabel RN1 = new JLabel();
private JLabel RN2 = new JLabel();
private JLabel RN3 = new JLabel();
private JLabel RN4 = new JLabel();
private JLabel S1 = new JLabel();
private JLabel S2 = new JLabel();
private JLabel S3 = new JLabel();
private JLabel S4 = new JLabel();
private JPanel dp1 = new JPanel();
private JPanel dp2 = new JPanel();
private JPanel dp3 = new JPanel();
private JPanel dp4 = new JPanel();
public DruckPanel(Container c){
JButton ab = new JButton("Abbrechen");
JButton wb = new JButton("Wählen");
JPanel bp = new JPanel();
JPanel bep = new JPanel();
c.add(this,"Center");
c.add(bp,"South");
bp.setLayout(new GridLayout(1,2,20,20));
bp.add(wb);
buttonWach bW = new buttonWach();
ab.addActionListener(bW);
wb.addActionListener(bW);
bp.add(ab);
dp1.setLayout(new GridLayout(1,4,80,80));
dp2.setLayout(new GridLayout(1,4,80,80));
dp3.setLayout(new GridLayout(1,4,80,80));
dp4.setLayout(new GridLayout(1,4,80,80));
dp1.add(LPT1b);
dp1.add(DN1);
dp1.add(RN1);
dp1.add(S1);
dp2.add(LPT2b);
dp2.add(DN2);
dp2.add(RN2);
dp2.add(S2);
dp3.add(LPT3b);
dp3.add(DN3);
dp3.add(RN3);
dp3.add(S3);
dp4.add(LPT4b);
dp4.add(DN4);
dp4.add(RN4);
dp4.add(S4);
bep.setLayout(new GridLayout(1,4,80,80));
bep.add(LL);
bep.add(PRT);
bep.add(RN);
bep.add(OO);
this.setLayout(new GridLayout(5,1));
this.add(bep);
this.add(dp1);
this.add(dp2);
this.add(dp3);
this.add(dp4);
gruppe.add(LPT1b);
gruppe.add(LPT2b);
gruppe.add(LPT3b);
gruppe.add(LPT4b);
}
public class buttonWach implements ActionListener{
public void actionPerformed(ActionEvent e){
String command=e.getActionCommand();
if (command.equals("Abbrechen")) System.exit(0);
else if(command.equals("Wählen")){
//Hier kommt der BufferedReader, den ich eigentlich unabhängig vom Button "Wählen" laufen
//lassen will
File readfile = new File(filename);
String line;
try{
BufferedReader bfr = new BufferedReader(new FileReader(readfile));
String[] l1 = bfr.readLine().split(",");
PRT1=l1[0];
RaN1=l1[1];
St1=l1[2];
DN1.setText(PRT1);
RN1.setText(RaN1);
S1.setText(St1);
//Wenn Status in Datei "Drucker.txt" = nein, dann Panel nicht einblenden
if(St1.equals("nein")){
dp1.setVisible(false);
}
else if(St1.equals("ja")){
dp1.setVisible(true);
dp1.setBackground(Color.green);
}
String[] l2 = bfr.readLine().split(",");
PRT2=l2[0];
RaN2=l2[1];
St2=l2[2];
DN2.setText(PRT2);
RN2.setText(RaN2);
S2.setText(St2);
if(St2.equals("nein")){
dp2.setVisible(false);
}
else if(St2.equals("ja")){
dp2.setVisible(true);
}
String[] l3 = bfr.readLine().split(",");
PRT3=l3[0];
RaN3=l3[1];
St3=l3[2];
DN3.setText(PRT3);
RN3.setText(RaN3);
S3.setText(St3);
if(St3.equals("nein")){
dp3.setVisible(false);
}
else if(St3.equals("ja")){
dp3.setVisible(true);
}
String[] l4 = bfr.readLine().split(",");
PRT4=l4[0];
RaN4=l4[1];
St4=l4[2];
DN4.setText(PRT4);
RN4.setText(RaN4);
S4.setText(St4);
if(St4.equals("nein")){
dp4.setVisible(false);
}
else if(St4.equals("ja")){
dp4.setVisible(true);
}
bfr.close();
}
catch(Exception ex){
System.err.println("Problem beim Lesen");
}
}
}
}
}
Code:
//SimpleFrame.java
package SimpleFrame;
import java.awt.event.*;
import javax.swing.*;
public class SimpleFrame extends JFrame{
public SimpleFrame(){
setSize(400,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void showIt(){
setVisible(true);
}
public void showIt(String title){
setTitle(title);
setVisible(true);
}
public void showIt(String title,int x,int y){
setTitle(title);
setLocation(x,y);
setVisible(true);
}
public void hideIt() {
setVisible(false);
}
}
Code:
//Die main-Methode in
//DruckPanelTest.java
import SimpleFrame.*;
import javax.swing.*;
import java.awt.*;
public class DruckPanelTest extends SimpleFrame{
public DruckPanelTest(){
new DruckPanel(getContentPane());
setTitle("Druckerdialog");
showIt();
}
public static void main(String[] args){
DruckPanelTest DPT = new DruckPanelTest();
}
}
Wär cool wenn mir einer von euch weiterhelfen könnte! Danke schonmal!
Gruß Tobi