Dateityp festlegen
-
package gui; import java.io.File; import java.util.Hashtable; import java.util.Enumeration; import javax.swing.filechooser.*; public class MyFileFilter extends FileFilter { private Hashtable extensions; public MyFileFilter() { extensions = new Hashtable(); } public MyFileFilter(Hashtable extensions) { if(extensions != null) extensions = new Hashtable(extensions); } public void addExtension(String extension) { if(extension == null) return; extensions.put(extension, new String(extension)); } public boolean accept(File f) { if(f != null) { if(f.isDirectory()) return true; //Verzeichnis öffnen String extension = getExtension(f); //prüfen, ob Datei und ob in gewünschten Extensions enthalten if(extension != null && extensions.get(extension) != null) return true; } return false; } public String getDescription() { String description = "Followed files are available: "; Enumeration enum = extensions.keys(); while(enum.hasMoreElements()) { description += (String) enum.nextElement() + " "; } return description; } //gibt die Extension (String nach einem '.') zurück public String getExtension(File f) { if(f != null) { String fileName = f.getName(); int pos = fileName.indexOf('.'); if(pos > 0 && pos < fileName.length()-1) { return fileName.substring(pos+1); } } return null; } }
-
Also hier ist mal der Teil aus dem JBuilder, wo die Datentypbeschränkung eingebaut werden soll
import java.awt.*; import java.awt.event.*; import javax.swing.*; import com.borland.dbswing.*; import java.io.*; import javax.swing.text.*; import javax.swing.event.*; public class TextEditFrame extends JFrame { IntlSwingSupport intlSwingSupport1 = new IntlSwingSupport(); JPanel contentPane; JMenuBar menuBar1 = new JMenuBar(); JMenu menuFile = new JMenu(); JMenuItem menuFileExit = new JMenuItem(); JMenu menuHelp = new JMenu(); JMenuItem menuHelpAbout = new JMenuItem(); JToolBar toolBar = new JToolBar(); JButton jButton1 = new JButton(); JButton jButton2 = new JButton(); JButton jButton3 = new JButton(); ImageIcon image1; ImageIcon image2; ImageIcon image3; ImageIcon image4; JLabel statusBar = new JLabel(); BorderLayout borderLayout1 = new BorderLayout(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); JMenuItem jMenuItem1 = new JMenuItem(); JMenuItem jMenuItem2 = new JMenuItem(); JMenuItem jMenuItem3 = new JMenuItem(); JMenuItem jMenuItem4 = new JMenuItem(); FontChooser fontChooser1 = new FontChooser(); JMenu jMenu1 = new JMenu(); JMenuItem jMenuItem5 = new JMenuItem(); JMenuItem jMenuItem6 = new JMenuItem(); JMenuItem jMenuItem7 = new JMenuItem(); JFileChooser JFileChooser1 = new JFileChooser.FileFilter(); JFileChooser1.setFileFilter( new javax.swing.filechooser.FileFilter(){ public boolean accept(File theFile) { if (theFile.isDirectory()) return true; String fileName = theFile.getName(); if (!fileName.endsWith(".txt")) return false; return fileName.indexOf('_') == -1; } public String getDescription() { return "Translation files"; } }); String currFileName = null; // Kompletter Pfad mit Dateiname; null bedeutet neu/unbenannt. boolean dirty = false; Document document1; DBTextDataBinder dBTextDataBinder1 = new DBTextDataBinder(); // True bedeutet geänderter Text. //Frame konstruieren public TextEditFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); updateCaption(); } catch(Exception e) { e.printStackTrace(); } } //Initialisierung der Komponenten private void jbInit() throws Exception { image1 = new ImageIcon(TextEditFrame.class.getResource("openFile.gif")); image2 = new ImageIcon(TextEditFrame.class.getResource("closeFile.gif")); image3 = new ImageIcon(TextEditFrame.class.getResource("help.gif")); //image4 = new ImageIcon(TextEditFrame.class.getResource("StartLogo.jpg")); //BildLabel.setVisible(true); //BildLabel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); contentPane = (JPanel) this.getContentPane(); document1 = jTextArea1.getDocument(); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(400, 300)); this.setTitle("Text-Editor"); statusBar.setText(" "); menuFile.setText("Datei"); menuFileExit.setText("Beenden"); menuFileExit.addActionListener(new TextEditFrame_menuFileExit_ActionAdapter(this)); menuHelp.setText("Hilfe"); menuHelpAbout.setText("Info"); menuHelpAbout.addActionListener(new TextEditFrame_menuHelpAbout_ActionAdapter(this)); jButton1.setIcon(image1); jButton1.addActionListener(new TextEditFrame_jButton1_actionAdapter(this)); jButton1.setToolTipText("Datei öffnen"); jButton2.setIcon(image2); jButton2.addActionListener(new TextEditFrame_jButton2_actionAdapter(this)); jButton2.setToolTipText("Datei schließen"); jButton3.setIcon(image3); jButton3.addActionListener(new TextEditFrame_jButton3_actionAdapter(this)); jButton3.setToolTipText("Info"); jTextArea1.setLineWrap(true); jTextArea1.setWrapStyleWord(true); jTextArea1.setBackground(Color.white); jMenuItem1.setText("Neu"); jMenuItem1.addActionListener(new TextEditFrame_jMenuItem1_actionAdapter(this)); jMenuItem2.setText("Öffnen"); jMenuItem2.addActionListener(new TextEditFrame_jMenuItem2_actionAdapter(this)); jMenuItem3.setText("Speichern"); jMenuItem3.addActionListener(new TextEditFrame_jMenuItem3_actionAdapter(this)); jMenuItem4.setText("Speichern unter"); jMenuItem4.addActionListener(new TextEditFrame_jMenuItem4_actionAdapter(this)); fontChooser1.setFrame(this); fontChooser1.setTitle("Schrift"); jMenu1.setText("Bearbeiten"); jMenuItem5.setText("Schrift"); jMenuItem5.addActionListener(new TextEditFrame_jMenuItem5_actionAdapter(this)); jMenuItem6.setText("Vordergrundfarbe"); jMenuItem6.addActionListener(new TextEditFrame_jMenuItem6_actionAdapter(this)); jMenuItem7.setText("Hintergrundfarbe"); jMenuItem7.addActionListener(new TextEditFrame_jMenuItem7_actionAdapter(this)); document1.addDocumentListener(new TextEditFrame_document1_documentAdapter(this)); dBTextDataBinder1.setJTextComponent(jTextArea1); //Menüeintrag für 'Datei öffnen...' per Rechtsklick deaktivieren. dBTextDataBinder1.setEnableFileLoading(false); //Menüeintrag für 'Datei speichern...' per Rechtsklick deaktivieren. dBTextDataBinder1.setEnableFileSaving(false); toolBar.add(jButton1); toolBar.add(jButton2); toolBar.add(jButton3); menuFile.add(jMenuItem1); menuFile.add(jMenuItem2); menuFile.add(jMenuItem3); menuFile.add(jMenuItem4); menuFile.addSeparator(); menuFile.add(menuFileExit); menuHelp.add(menuHelpAbout); menuBar1.add(menuFile); menuBar1.add(jMenu1); menuBar1.add(menuHelp); this.setJMenuBar(menuBar1); contentPane.add(toolBar, BorderLayout.NORTH); contentPane.add(statusBar, BorderLayout.SOUTH); contentPane.add(jScrollPane1, BorderLayout.CENTER); //contentPane.add(BildLabel, BorderLayout.CENTER); jScrollPane1.getViewport().add(jTextArea1, null); jMenu1.add(jMenuItem5); jMenu1.add(jMenuItem6); jMenu1.add(jMenuItem7); } // Info-Fenster anzeigen. void helpAbout() { TextEditFrame_AboutBox dlg = new TextEditFrame_AboutBox(this); Dimension dlgSize = dlg.getPreferredSize(); Dimension frmSize = getSize(); Point loc = getLocation(); dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y); dlg.setModal(true); dlg.show(); } // Behandlung des Menüs oder Schalter für Datei|Öffnen, ruft okToAbandon // und openFile auf, falls erforderlich. void fileOpen() { if (!okToAbandon()) { return; } // Verwenden der ÖFFNEN-Version des Dialogs und Test der Rückgabe auf // Zustimmung oder Abbruch if (JFileChooser.APPROVE_OPTION == jFileChooser1.showOpenDialog(this)) { // Aufrufen von openFile, um Text aus einer Datei in die TextArea zu laden openFile(jFileChooser1.getSelectedFile().getPath()); } this.repaint(); } // Öffnet Datei; liest Text aus Datei in jTextArea1 ein; Report an Statuszeile. void openFile(String fileName) { try { // Öffnet eine gegebene Datei. File file = new File(fileName); // Ermittelt die Größe der geöffneten Datei. int size = (int)file.length(); // Setzt den Zähler für die Anzahl aus einer Datei // gelesener Zeichen auf 0 zurück. int chars_read = 0; // Erzeugt einen Input-Reader für eine Datei zum Lesen der Daten. // FileReader behandelt die Konvertierung der Codierung von // internationalen Zeichen. FileReader in = new FileReader(file); // Erzeugt ein Zeichen-Array von der Größe der Datei, // das als Datenpuffer für das Einlesen von // Textdaten verwendet wird. char[] data = new char[size]; // Alle verfügbaren Zeichen werden in den Puffer eingelesen. while(in.ready()) { // Anzahl für jedes gelesene Zeichen erhöhen, // und sie im Datenpuffer ablegen. chars_read += in.read(data, chars_read, size - chars_read); } in.close(); // Temporären String für die Daten erzeugen, // und den String an die JTextArea übergeben. jTextArea1.setText(new String(data, 0, chars_read)); // Behält den Dateinamen für eine spätere Speichern-Operation... this.currFileName = fileName; // ...und markiert die Bearbeiten-Sitzung als ungeändert this.dirty = false; // Anzeige von Verzeichnis und Datei in der Statuszeile. statusBar.setText(fileName + " wurde geöffnet."); updateCaption(); } catch (IOException e) { statusBar.setText("Fehler beim Öffnen von " + fileName); } } // Speichert aktuelle Datei; Handle besitzt noch keine Dateinamen; // Report an Statuszeile. boolean saveFile() { // Behandelt den Umstand, dass wir noch keinen Dateinamen haben. if (currFileName == null) { return saveAsFile(); } try { // Öffnen einer Datei unter dem aktuellen Namen. File file = new File (currFileName); // Erzeugt einen Output-Reader zum Schreiben in die Datei. // FileWriter behandelt die Konvertierung der Codierung // internationaler Zeichen. FileWriter out = new FileWriter(file); String text = jTextArea1.getText(); out.write(text); out.close(); this.dirty = false; // Zeigt den Namen des gespeicherten Verzeichnisses + der // Datei in statusBar. statusBar.setText("Gespeichert in " + currFileName); updateCaption(); return true; } catch (IOException e) { statusBar.setText("Fehler beim Speichern von " + currFileName); } return false; } // Speichert die aktuelle Datei mit Eingabeaufforderung // für einen neuen Dateinamen. // Report an Statuszeile. boolean saveAsFile() { this.repaint(); // Verwendet die SPEICHERN-Version des Dialogs und testet die Rückgabe // auf Zustimmung oder Abbruch if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) { // Dateinamen festlegen, // danach normales saveFile ausführen currFileName = jFileChooser1.getSelectedFile().getPath(); //Nach Auswahl das Menü neu zeichnen this.repaint(); return saveFile(); } else { this.repaint(); return false; } } // Prüfen, ob die Datei verändert ist. // Wenn ja, den Benutzer zu "Speichern? Ja/Nein/Abbrechen" auffordern. boolean okToAbandon() { if (!dirty) { return true; } int value = JOptionPane.showConfirmDialog(this, "Änderungen speichern?", "Text Edit", JOptionPane.YES_NO_CANCEL_OPTION) ; switch (value) { case JOptionPane.YES_OPTION: // ja, Änderungen speichern return saveFile(); case JOptionPane.NO_OPTION: // nein, Änderungen verwerfen // z.B. true zurückgeben ohne Speichern return true; case JOptionPane.CANCEL_OPTION: default: // Abbrechen return false; } } // Anzeige des Dateinamens und des Geändert-Status in der Titelleiste der Anwendung void updateCaption() { String caption; if (currFileName == null) { // "Unbenannt" synthetisieren, wenn noch kein Name angegeben. caption = "Unbenannt"; } else { caption = currFileName; } // ein '*' zum Namen hinzufügen, wenn die Datei gespeichert werden muss if (dirty) { caption = "* " + caption; } caption = "Text-Editor - " + caption; this.setTitle(caption); } //Datei | Beenden ausgeführt public void fileExit_actionPerformed(ActionEvent e) { if (okToAbandon()) { System.exit(0); } } //Hilfe | Info ausgeführt public void helpAbout_actionPerformed(ActionEvent e) { helpAbout(); } //Überschreiben, sodass das Fenster beim Beenden geschlossen werden kann protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { fileExit_actionPerformed(null); } } void jMenuItem5_actionPerformed(ActionEvent e) { // Menüpunkt "Schrift bearbeiten" behandeln // Aktuelle Schrift im Textfenster ermitteln // und vor der Anzeige des FontChooser dort // übernehmen, damit die aktuelle/vorherige // Schrift bearbeitet werden kann. fontChooser1.setSelectedFont(jTextArea1.getFont()); // Neue Schrift aus dem FontChooser. // Erst die Rückgabe von showDialog() prüfen, // ob vom Anwender OK gedrückt wurde. if (fontChooser1.showDialog()) { // Die Schrift von jTextArea1 auf // die vom Anwender gewählte Schrift setzen jTextArea1.setFont(fontChooser1.getSelectedFont()); } // Menü nach Auswahl neu zeichnen this.repaint(); //Text korrekt neu zeichnen, falls bei der Schriftauswahl Text markiert war jTextArea1.repaint(); } void jMenuItem6_actionPerformed(ActionEvent e) { // Menüpunkt "Vordergrundfarbe" behandeln Color color = JColorChooser.showDialog(this,"Vordergrundfarbe",jTextArea1.getForeground()); if (color != null) { jTextArea1.setForeground(color); } //Menü nach Auswahl neu zeichnen this.repaint(); } void jMenuItem7_actionPerformed(ActionEvent e) { // Menüpunkt "Hintergrundfarbe" behandeln Color color = JColorChooser.showDialog(this,"Hintergrundfarbe",jTextArea1.getBackground()); if (color != null) { jTextArea1.setBackground(color); } //Menü nach Auswahl neu zeichnen this.repaint(); } void jMenuItem1_actionPerformed(ActionEvent e) { // Behandelt Menüeintrag Datei|Neu. if (okToAbandon()) { // löscht Text im Textfenster jTextArea1.setText(""); // löscht den aktuellen Dateinamen und markiert die Datei als unverändert currFileName = null; dirty = false; updateCaption(); } } void jMenuItem2_actionPerformed(ActionEvent e) { // Behandelt Menüeintrag Datei|Öffnen. fileOpen(); } void jMenuItem3_actionPerformed(ActionEvent e) { // Behandelt Menüeintrag Datei|Speichern. saveFile(); } void jMenuItem4_actionPerformed(ActionEvent e) { // Behandelt Menüeintrag Datei|Speichern unter. saveAsFile(); } void jButton1_actionPerformed(ActionEvent e) { // Behandelt Schalter Öffnen der Symbolleiste. fileOpen(); } void jButton2_actionPerformed(ActionEvent e) { // Behandelt Schalter Speichern der Symbolleiste. saveFile(); } void jButton3_actionPerformed(ActionEvent e) { // Behandelt Schalter Info der Symbolleiste. helpAbout(); } void document1_changedUpdate(DocumentEvent e) { if (!dirty) { dirty = true; updateCaption(); } } void document1_insertUpdate(DocumentEvent e) { if (!dirty) { dirty = true; updateCaption(); } } void document1_removeUpdate(DocumentEvent e) { if (!dirty) { dirty = true; updateCaption(); } } } class TextEditFrame_menuFileExit_ActionAdapter implements ActionListener { TextEditFrame adaptee; TextEditFrame_menuFileExit_ActionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.fileExit_actionPerformed(e); } } class TextEditFrame_menuHelpAbout_ActionAdapter implements ActionListener { TextEditFrame adaptee; TextEditFrame_menuHelpAbout_ActionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.helpAbout_actionPerformed(e); } } class TextEditFrame_jMenuItem5_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jMenuItem5_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem5_actionPerformed(e); } } class TextEditFrame_jMenuItem6_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jMenuItem6_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem6_actionPerformed(e); } } class TextEditFrame_jMenuItem7_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jMenuItem7_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem7_actionPerformed(e); } } class TextEditFrame_jMenuItem1_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jMenuItem1_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem1_actionPerformed(e); } } class TextEditFrame_jMenuItem2_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jMenuItem2_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem2_actionPerformed(e); } } class TextEditFrame_jMenuItem3_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jMenuItem3_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem3_actionPerformed(e); } } class TextEditFrame_jMenuItem4_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jMenuItem4_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jMenuItem4_actionPerformed(e); } } class TextEditFrame_jButton1_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jButton1_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); } } class TextEditFrame_jButton2_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jButton2_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton2_actionPerformed(e); } } class TextEditFrame_jButton3_actionAdapter implements java.awt.event.ActionListener { TextEditFrame adaptee; TextEditFrame_jButton3_actionAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton3_actionPerformed(e); } } class TextEditFrame_document1_documentAdapter implements javax.swing.event.DocumentListener { TextEditFrame adaptee; TextEditFrame_document1_documentAdapter(TextEditFrame adaptee) { this.adaptee = adaptee; } public void changedUpdate(DocumentEvent e) { adaptee.document1_changedUpdate(e); } public void insertUpdate(DocumentEvent e) { adaptee.document1_insertUpdate(e); } public void removeUpdate(DocumentEvent e) { adaptee.document1_removeUpdate(e); } }
und da kommt die Fehlender Bezeichner-Meldung drin!!
Wie baue ich denn deinen Code da ein @Kati
Danke für die Hilfe
-
... ist mir jetzt zu viel Arbeit Ich poste den Code spätestens morgen.
-
Das ist mir etwas suspekt:
JFileChooser JFileChooser1 = new JFileChooser.FileFilter(); JFileChooser1.setFileFilter( new javax.swing.filechooser.FileFilter(){
Du möchtest einen JFilechooser erzeugen und rufst aber new JFileChooser.FileFilter() auf?
-
BTW: Gibt es eigentlich auch GUI-Designer, die besseren Code generieren, der nicht so unglaublich redundant ist, wie der da oben von BlinderBaer?
-
Gregor schrieb:
... so unglaublich redundant ...
glaube ich nicht...
kati
-
Hallo ,
hier ist der versprochene Code, ich habe eigene Packages nicht verwendet, damit es bei dir läuft. Also zuerst einmal die erste (von mir gepostete) Klasse kompilieren und dann diese. Und dann ... java gui.Viewer
package gui; import java.util.*; import java.awt.*; //Color + Layoutmanager import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; import javax.swing.JFileChooser.*; import javax.swing.BorderFactory.*; import javax.swing.border.*; import java.io.*; public class Viewer extends JFrame implements ActionListener { private JScrollPane jsp; private JTree jt; private JButton jbLoad; private JButton jbExit; private JTextArea jtaAttr; private JScrollPane jsp2; public void actionPerformed(ActionEvent ae) { if(ae.getSource() == jbLoad) { //DATEN LADEN MyFileFilter mff = new MyFileFilter(); mff.addExtension("shp"); JFileChooser jfch = new JFileChooser(); jfch.addChoosableFileFilter(mff); javax.swing.filechooser.FileFilter[] ff; //alle Filter ff = jfch.getChoosableFileFilters(); //alle Filter abfragen for(int i=0; i<ff.length; i++) { if(ff[i] != mff) jfch.removeChoosableFileFilter(ff[i]); //andere Filter entfernen! } jfch.setFileFilter(mff); int returnVal = jfch.showOpenDialog((JPanel) getContentPane()); if(returnVal == JFileChooser.APPROVE_OPTION) { File f = jfch.getSelectedFile(); String path = f.getPath(); int lastPoint = path.lastIndexOf('.'); String extension = path.substring(lastPoint+1, path.length()); if(extension.equals("shp")) { //HIER SOLL ES DANN DAS TUN, WAS DU WILLST (DATEI ÖFFNEN) repaint(); } //else ! MessageBox } } else if(ae.getSource() == jbExit) { //ENDE System.exit(0); } } public Viewer() { super("Viewer"); JPanel cp = (JPanel) getContentPane(); //Content Pane cp.setLayout(new GridLayout(1,2)); Border etchedBorder = BorderFactory.createEtchedBorder(); Box b1 = Box.createVerticalBox(); //Box für JScrollPane b1.setBorder(BorderFactory.createTitledBorder(etchedBorder, "Geodaten", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Arial", Font.BOLD, 16), new Color(0,0,128))); Box b2 = Box.createHorizontalBox(); //Box für JButton Box b3 = Box.createVerticalBox(); //Box für JTextArea b3.setBorder(BorderFactory.createTitledBorder(etchedBorder, "Sachdaten", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Arial", Font.BOLD, 16), new Color(0,0,128))); /** JTextArea **/ jtaAttr = new JTextArea(); jtaAttr.setWrapStyleWord(true); /** JButton **/ jbLoad = new JButton("File laden"); Border raisedBorder = BorderFactory.createRaisedBevelBorder(); jbLoad.setBorder(raisedBorder); jbLoad.setPreferredSize(new Dimension(120,30)); jbLoad.addActionListener(this); jbExit = new JButton("Beenden"); jbExit.setBorder(raisedBorder); jbExit.setPreferredSize(new Dimension(120,30)); jbExit.addActionListener(this); /** JButton **/ /** JTree + JScrollPane**/ jt = new JTree(); jt.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); jt.addTreeSelectionListener( new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent tse) { //tue was, wenn ein Eintrag angeklickt wird } } ); jsp = new JScrollPane(jt); jsp2 = new JScrollPane(jtaAttr); /** JTree + JScrollPane**/ b3.add(jsp2); JPanel jpButtons = new JPanel(); jpButtons.setLayout(new GridLayout(1,2)); jpButtons.setMaximumSize(new Dimension(500,100)); //? jpButtons.add(jbLoad); jpButtons.add(jbExit); b2.add(jpButtons); b1.add(jsp); b1.add(b2); cp.add(b1); cp.add(b3); } public static void main(String[] args) { JFrame d = new Viewer(); class WClose extends WindowAdapter { public void windowClosing(WindowEvent we) { System.exit(0); } } d.addWindowListener(new WClose()); d.setSize(500,500); d.setVisible(true); d.setExtendedState(JFrame.MAXIMIZED_BOTH); d.setResizable(false); } }
cu
kati
-
@Alle
Seid ihr sicher, es macht sinn für etwas derart simples Code im Umfang von 100+ Zeilen zu posten? Irgendwie kommt hier die Mentalität "Friss oder Stirb" auf ... nach dem Motto "hier haste mal meine gesamte Applikation; da kannste dir das dann raussuchen" - genau das bringt nichts IMHO. Es ist viel effektiver, wenn man jemandem die Prinzipien beibringt als nur einen Anwendungsfall erläutert.Bitte denkt das nächste Mal daran - Danke!
-
CengizS schrieb:
@Alle
Es ist viel effektiver, wenn man jemandem die Prinzipien beibringt als nur einen Anwendungsfall erläutert.jo, du hast natürlich recht, aber die Prinzipien sind eh in der Referenz... also nehme ich mal an, dass man nach dem Prinzipien nicht gesucht hat...
lg
kati
-
Gregor schrieb:
BTW: Gibt es eigentlich auch GUI-Designer, die besseren Code generieren, der nicht so unglaublich redundant ist, wie der da oben von BlinderBaer?
Ich hoffe und bete dafür, dass der GUI-Designer von Eclipse schön strukturierten Code erzeugen wird.
Apropo, gibts den eigentlihc inzwischen schon?
-
es mag mit Sicherheit sein, dass es besser waere Grundlagen zu erläutern. Evtl ist mein Java-Lernweg nicht der idealste. Ich bastel meine Sachen gerade mit dem JBuilder, versteh manche Sachen auch nicht so, warum und weshalb manches so gemacht wird, aber es läuft und wenn du mir dann da irgendeinen Code dahinknallst ohne Erklärung und sonstiges blick ichs halt net! Arbeite aber dran!!
Im übrigen kannst du dir bewertende Kommentare sparen, schliesslich ist noch kein Meister vom Himmel gefallen!! Und warum und wofür man seinen Kram braucht ist mit Sicherheit sekundär für Dritte!!
Ich finde es absolut genial u.a. von Kati, dass sich Leute solche Mühe machen in die Probs anderer reinzudenken und auch Lsg erarbeiten!!
Ich wünschte in käme auch schneller in die Grundlagen usw rein, aber Zeit ist relativ! Hilfreich waere evtl mal ein Kurs:@Kati
Herzlichen Dank für deine Mühe. Werd direkt mal testen ob ich ans laufen bekomme!! Und auch mal in meine Codes einbauen kann!! Wäre dankbar wenn ich mich nochmal melden könnte (evtl auch zu anderem). Aber erst mal testen.cu and thx
-
BlinderBaer schrieb:
es mag mit Sicherheit sein, dass es besser waere Grundlagen zu erläutern. Evtl ist mein Java-Lernweg nicht der idealste. Ich bastel meine Sachen gerade mit dem JBuilder, versteh manche Sachen auch nicht so, warum und weshalb manches so gemacht wird, aber es läuft und wenn du mir dann da irgendeinen Code dahinknallst ohne Erklärung und sonstiges blick ichs halt net! Arbeite aber dran!!
Du irrst dich. Ich habe dir keinen Code hingeknallt - aus genau diesem Grund. Ich habe dir lediglich den für dein Problem relevanten Part kopiert. Die in diesem Fall von Kati gepostete Klasse hast du doch so auch nicht verstanden, oder etwa doch? Die ist von der Komplexität her noch viel größer!
BlinderBaer schrieb:
Im übrigen kannst du dir bewertende Kommentare sparen, schliesslich ist noch kein Meister vom Himmel gefallen!! Und warum und wofür man seinen Kram braucht ist mit Sicherheit sekundär für Dritte!!
Du irrst dich erneut. Ich habe deine Art zu programmieren weder kritisiert noch in irgendeiner Form bewertet. Ich bewerte hier überhaupt keinen Code. Mein Seitenhieb galt nur denjenigen, die hier mit Mords-Code dir versucht haben zu erklären wie man einen FileFilter an einen JFileChooser bindet. In diesem Sinne war es sogar für dich und nicht gegen dich.
BlinderBaer schrieb:
Ich finde es absolut genial u.a. von Kati, dass sich Leute solche Mühe machen in die Probs anderer reinzudenken und auch Lsg erarbeiten!!
Ja das haben die Benutzer dieses Forums so an sich. Dagegen ist auch nichts einzuwenden - du verdrehst immer noch die Tatsachen.
BlinderBaer schrieb:
Ich wünschte in käme auch schneller in die Grundlagen usw rein, aber Zeit ist relativ! Hilfreich waere evtl mal ein Kurs:
Vielleicht solltest du den machen. In der Regel reicht allerdings ein Buch aus. Für konkrete Fragen gibts auch noch das Forum (es ersetzt aber keine Vorlesung oder ein Buch!)
Lies dir einfach den Thread noch einmal durch und dann den von mir geschriebenen Text. Ich denke anschließend wird dir mein Standpunkt klarer werden.