Hallo Zusammen!
ich hab nicht wirklich ein Problem sondern eher eine Frage und zwar hab ich zwei Klassen und möchte aus der Klasse a einen String an Klasse b weitergeben. Nun habe ich das immer so gemacht das ich in der Klasse b ein Objekt von der Klasse a erzeugt habe und mit diesem Objekt eine getMethode vollzogen nun wollte ich wissen ob das auch irgendwie eleganter geht. Ich will den Pfad den die Klasse DirPanel hat an das DatePanel weitergeben.
Danke im voraus
MfG
Saban
ich hab nicht wirklich ein Problem sondern eher eine Frage und zwar hab ich zwei Klassen und möchte aus der Klasse a einen String an Klasse b weitergeben. Nun habe ich das immer so gemacht das ich in der Klasse b ein Objekt von der Klasse a erzeugt habe und mit diesem Objekt eine getMethode vollzogen nun wollte ich wissen ob das auch irgendwie eleganter geht. Ich will den Pfad den die Klasse DirPanel hat an das DatePanel weitergeben.
Java:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class DirPanel extends JPanel{
private JTextField tf_pfad = new JTextField();
private JLabel lb_pfad = new JLabel("Pfad in dem die Datei(en) liegt");
private JButton bt_chooser = new JButton();
public DirPanel(){
/* Eigenschaften des FileChooser-Buttons */
bt_chooser.setFocusPainted(false);
bt_chooser.setBorderPainted(false);
bt_chooser.setContentAreaFilled(false);
bt_chooser.setIcon(new ImageIcon("D:\\Programm Files\\Programmieren\\Symbole für Buttons\\Roland Symbole\\22x22\\actions\\document-open.png"));
bt_chooser.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
/* Der eigentliche FileChooser */
JFileChooser chooser = new JFileChooser();
/* Durch diese Option werden nur Verzeichnisse im Auswahl-Dialog angezeigt */
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
/* Titel des FileChoosers */
chooser.setDialogTitle("Verzeichnis wählen");
/* Der Öffnen Button wird zum Auswählen Button umbenannt */
chooser.setApproveButtonText("Auswählen");
/* Tooltip auf den Öffnen Button setzen */
chooser.setApproveButtonToolTipText("Drücken, um Verzeichnis auszuwählen");
int result = chooser.showOpenDialog(null);
/* Was soll nach der Auswahl passieren */
if(result == JFileChooser.APPROVE_OPTION)
{
/* Ausgabe des Pfades im TextFeld */
tf_pfad.setText(chooser.getSelectedFile().toString());
}
}
});
/* Eigenschaften des Labels für die Pfad Auswahl */
lb_pfad.setFont(new Font("Arial", Font.PLAIN, 10));
/* Setzt einen Rahmen um die Pfad-Angabe */
setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Pfad"));
/* Eigenschaften des TextFelds zur Pfad Ausgabe */
tf_pfad.setEditable(false);
tf_pfad.setFont(new Font("Arial", Font.BOLD, 12));
/* Layout des Panels */
setLayout(null);
lb_pfad.setBounds ( 10, 25,150, 12);
tf_pfad.setBounds ( 10, 40,400, 25);
bt_chooser.setBounds (420, 40, 25, 25);
add(lb_pfad);
add(bt_chooser);
add(tf_pfad);
}
public File getPfad(){
File file = new File(tf_pfad.getText());
return file;
}
}
Java:
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class DatePanel extends JPanel {
private JTextField tf_von = new JTextField();
private JTextField tf_bis = new JTextField();
private JLabel lb_von = new JLabel("Von:");
private JLabel lb_bis = new JLabel("Bis:");
private JLabel lb_date = new JLabel("Zeitraum in dem gesucht werden soll");
private JButton bt_start = new JButton();
public DatePanel(){
/* Setzt einen Rahmen um die Pfad-Angabe */
setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Datum"));
/* Eigenschaften des Start-Buttons */
bt_start.setIcon(new ImageIcon("D:\\Programm Files\\Programmieren\\Symbole für Buttons\\Roland Symbole\\22x22\\actions\\go-next.png"));
bt_start.setFocusPainted(false);
bt_start.setBorderPainted(false);
bt_start.setContentAreaFilled(false);
bt_start.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
/* Hier muss noch abgefragt werden ob ein Pfad angegeben ist bevor das Datum geprüft wird */
datePrüfer(tf_von);
datePrüfer(tf_bis);
if(tf_von.getText().equals("") || tf_bis.getText().equals("")){
System.out.println("Bitte geben Sie ein korrektes Datum an!");
}
else{
System.out.println("Starte Suche!");
}
}
});
/* Eigenschaften der TextFelder */
tf_von.setHorizontalAlignment(JTextField.RIGHT);
tf_von.setFont(new Font("Arial", Font.BOLD, 12));
tf_von.setDocument(new TextFeldBegrenzung(8));
tf_bis.setHorizontalAlignment(JTextField.RIGHT);
tf_bis.setFont(new Font("Arial", Font.BOLD, 12));
tf_bis.setDocument(new TextFeldBegrenzung(8));
/* Eigenschaften des Labels für die Auswahl Zeitraums */
lb_date.setFont(new Font("Arial", Font.PLAIN, 10));
/* Layout des Panels */
setLayout(null);
lb_date.setBounds ( 10, 25,250, 12);
lb_von.setBounds ( 10, 40, 50, 25);
tf_von.setBounds ( 40, 40,100, 25);
lb_bis.setBounds (170, 40, 50, 25);
tf_bis.setBounds (200, 40,100, 25);
bt_start.setBounds (420, 40, 25, 25);
add(lb_date);
add(lb_von);
add(tf_von);
add(lb_bis);
add(tf_bis);
add(bt_start);
}
public void datePrüfer(JTextField tf){
/* Übernimmt das Datum aus dem TextFeld */
String datum = tf.getText();
/* Formatiert das Datum */
SimpleDateFormat df = new SimpleDateFormat("dd.MM.yy");
/* Weißt den Parser an auf existierende Datumswerte zu achten, ohne die Zeile wird aus 32.01.2003, 01.02.2003 */
df.setLenient(false);
/* Überprüft das Datum auf Korrektheit */
try {
Date date = df.parse(datum);
} catch (ParseException e) {
/* Bei falschem Datum wird das TextFeld geleert */
tf.setText("");
}
}
}
Danke im voraus
MfG
Saban
Zuletzt bearbeitet von einem Moderator: