Dateityp festlegen
-
... 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.