Hi leute,
es geht um folgendes ich habe mir soweit ein kleines programm geschrieben das mir Buttons erstellt mit einer pfad angabe zu einem File das man sich selber aussuchen kann und das ganze in einer config datei abspeichert und neber den Buttons habe ich mir jetzt noch ein JCheckbox für jedes button erstellen das links neber dem button erscheint. so jetzt kommt mein problem. wie kann ich in der actionPreformed abfragen wenn die checkbox für den button ausgwählt wurde und dann auf den Button "Drucken" drücke das er mir das druckt. weil normaler weiße fange ich die checkbox events ja in der itemStateChanged methode ab. aber da kann ich doch net auf das button ereigniss warten. ich will mal hoffen das mir da einer helfen kann
VIELEN DANK schon einmal. hier ist mein Code :
es geht um folgendes ich habe mir soweit ein kleines programm geschrieben das mir Buttons erstellt mit einer pfad angabe zu einem File das man sich selber aussuchen kann und das ganze in einer config datei abspeichert und neber den Buttons habe ich mir jetzt noch ein JCheckbox für jedes button erstellen das links neber dem button erscheint. so jetzt kommt mein problem. wie kann ich in der actionPreformed abfragen wenn die checkbox für den button ausgwählt wurde und dann auf den Button "Drucken" drücke das er mir das druckt. weil normaler weiße fange ich die checkbox events ja in der itemStateChanged methode ab. aber da kann ich doch net auf das button ereigniss warten. ich will mal hoffen das mir da einer helfen kann
VIELEN DANK schon einmal. hier ist mein Code :
Code:
public class BerichtAusdruck extends JFrame implements ActionListener, ItemListener{
/**
*
*/
private static final long serialVersionUID = 1L;
ArrayList<String> pfadArray; //Speichern des Pfades
ArrayList<String> buttonArray; //Speichern der Buttonname
ArrayList<String> check; //Speichern der Checkbox Auswahl
//Definition der JPanelvariablen
JPanel mleiste;
JPanel schaltfMitte;
JPanel schaltfUnten;
//Definition der Buttonsvariablen
JButton beenden;
JButton drucken;
JButton button;
JButton loeschen;
//Definition der Menüvariablen
JMenuBar bar;
JMenu datei;
JMenuItem neu;
JMenuItem oeffnen;
//Definition der Checkbox
JCheckBox checkbox;
public BerichtAusdruck(){
super("Programm um Formulare zu Öffnen und Neue zuerstellen");
pfadArray=new ArrayList<String>();
buttonArray=new ArrayList<String>();
try {
//aus Datei lesen
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream( "config.ini" )));
String zeile=in.readLine();
int i=1;
while(zeile!=null){
if(i%2==0){
String dateipfad=zeile;
pfadArray.add(dateipfad);
}else{
String buttonname=zeile;
buttonArray.add(buttonname);
}
i++;
zeile=in.readLine();
}
in.close();
}catch (Exception e1) {e1.printStackTrace();}
//Erzeugen der JPanels
mleiste=new JPanel();
schaltfMitte=new JPanel();
schaltfUnten=new JPanel();
//Layout
GridLayout layoutMitte=new GridLayout(buttonArray.size(),0);
GridLayout layoutUnten=new GridLayout(2,1);
BorderLayout bl=new BorderLayout();
GridLayout barlayout=new GridLayout(1,0);
mleiste.setLayout(barlayout);
schaltfMitte.setLayout(layoutMitte);
schaltfUnten.setLayout(layoutUnten);
bl.addLayoutComponent(mleiste, BorderLayout.NORTH);
bl.addLayoutComponent(schaltfMitte, BorderLayout.CENTER);
bl.addLayoutComponent(schaltfUnten, BorderLayout.SOUTH);
//Erzeugen der Buttons
for(int j=0;j<buttonArray.size();j++){
button = new JButton(buttonArray.get(j));
button.addActionListener(this);
schaltfMitte.add(button);
checkbox=new JCheckBox(buttonArray.get(j));
checkbox.addItemListener(this);
schaltfMitte.add(checkbox);
}
loeschen=new JButton("Löschen");
loeschen.addActionListener(this);
schaltfUnten.add(loeschen);
drucken=new JButton("Drucken");
drucken.addActionListener(this);
schaltfUnten.add(drucken);
beenden=new JButton("Beenden");
beenden.addActionListener(this);
schaltfUnten.add(beenden);
//Erzeugen des Menüs
bar= new JMenuBar();
datei=new JMenu("Datei");
neu=new JMenuItem("Neu");
oeffnen=new JMenuItem("Öffnen");
neu.addActionListener(this);
oeffnen.addActionListener(this);
datei.add(neu);
datei.add(oeffnen);
bar.add(datei);
//Addn des Menüs auf das JPanel
mleiste.add(bar);
//Addn des Layout auf das JFrame und JFrame sichtbar machen
add(mleiste);
add(schaltfMitte);
add(schaltfUnten);
setLayout(bl);
pack();
setVisible(true);
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
public static void main(String[] args) {
new BerichtAusdruck();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==neu){
new ButtonErstellen();
this.dispose();
}
if(e.getSource()==beenden){
System.exit(0);
}
if(e.getSource()==loeschen){
BLoeschen loesch=new BLoeschen();
}
if(e.getSource()==drucken){
boolean check=checkbox.isSelected();
String checkName=checkbox.getLabel();
System.out.println(check);
System.out.println(checkName);
Toolkit tk = Toolkit.getDefaultToolkit();
PrintJob pj = tk.getPrintJob(new JFrame(), checkName, null, null);
}
String button=e.getActionCommand(); //Welcher Button gedrückt wurde
for(int j=0;j<buttonArray.size();j++){
if(button==buttonArray.get(j)){ //wenn gedrückter button gleich button im array? ja
try{
File file=new File(pfadArray.get(j));
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " + file);
}catch(Exception fehler){}
}
}
}
public void itemStateChanged(ItemEvent e) {
/*Object comp=e.getSource();
if(comp instanceof JCheckBox){
JCheckBox cb = (JCheckBox) e.getItemSelectable();
System.out.println( cb.getLabel() + ": " + cb.isSelected() );
}
if(comp instanceof JButton){
System.out.println("test");
}
*/
}