Hi ich möchte, dass in meinem Editor je nachdem, welche Datei ich lade die enstprechende Datei im Editorfenster geöffnet wird.
Das Problem ist wenn ich eine .txt Datei lade brauche ich eine JTextArea und wenn ich ein Bild lade
eine JComponent. Nun weiß ich nicht wie ich zwischen den beiden Sachen wechseln kann.
Mein Programmcode sieht so aus: (Fragment)
Wichtige Zeilen sind hierbei:
Zeile 73/74
Zeile 97
Zeile 111
In diesen Zeilen habe ich den Versuch untenommen je nach ausgewählter Datei entweder die JTextArea oder die JComponent anzuzeigen. Doch das funktioniert nicht.
Es wird immer nur die mit add(...) zuletzt hinzugefügte Komponent angezeigt.
Ich hatte gedacht dass die in 74 eingefügte Komponente von der in 73 eingefügten Komponente überdeckt wird und dass ich durch ein remove(...) Zeilen 97/111 die enstprechende nicht benötigte Komponente einfach ausblenden kann. Aber das funktioniert nicht.
Das Problem ist wenn ich eine .txt Datei lade brauche ich eine JTextArea und wenn ich ein Bild lade
eine JComponent. Nun weiß ich nicht wie ich zwischen den beiden Sachen wechseln kann.
Mein Programmcode sieht so aus: (Fragment)
Wichtige Zeilen sind hierbei:
Zeile 73/74
Zeile 97
Zeile 111
In diesen Zeilen habe ich den Versuch untenommen je nach ausgewählter Datei entweder die JTextArea oder die JComponent anzuzeigen. Doch das funktioniert nicht.
Es wird immer nur die mit add(...) zuletzt hinzugefügte Komponent angezeigt.
Ich hatte gedacht dass die in 74 eingefügte Komponente von der in 73 eingefügten Komponente überdeckt wird und dass ich durch ein remove(...) Zeilen 97/111 die enstprechende nicht benötigte Komponente einfach ausblenden kann. Aber das funktioniert nicht.
Java:
public class MyEditor extends JFrame
{
public MyEditor()
{
super("Editor");
setLocation(300, 300);
setSize(500, 500);
addWindowListener( new MyWindowAdapter() );
setLocationRelativeTo(null);
JPanel panel = new JPanel();
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("Datei");
JMenu helpMenu = new JMenu("Hilfe");
getContentPane().add(panel);
menuBar.add(fileMenu);
menuBar.add(helpMenu);
setJMenuBar(menuBar);
fileMenu.setMnemonic(KeyEvent.VK_D); // Mnemonic ALT + Taste
helpMenu.setMnemonic(KeyEvent.VK_H);
final JFileChooser fc = new JFileChooser("C:/Users/Me/Desktop/MyJava");
FileNameExtensionFilter filter = new FileNameExtensionFilter("Text-File (*.txt)", "txt"); //zeigt nur die angegebenen Dateien an
fc.setFileFilter(filter);
FileNameExtensionFilter filter2 = new FileNameExtensionFilter("JPG-File (*.jpg)", "jpg"); //zeigt nur die angegebenen Dateien an
fc.setFileFilter(filter2);
FileNameExtensionFilter filter3 = new FileNameExtensionFilter("GIF-File (*.gif)", "gif"); //zeigt nur die angegebenen Dateien an
fc.setFileFilter(filter3);
FileNameExtensionFilter filter4 = new FileNameExtensionFilter("PDF-File (*.pdf)", "pdf"); //zeigt nur die angegebenen Dateien an
fc.setFileFilter(filter4);
/* fc.setFileFilter(new FileFilter()
{
@Override
public boolean accept(File f)
{
return f.getName().toLowerCase().endsWith(".txt") || f.isDirectory();
}
@Override
public String getDescription()
{
return "Text-File (*.txt)";
}
});
fc.setFileFilter(new FileFilter()
{
@Override
public boolean accept(File f)
{
return f.getName().toLowerCase().endsWith(".jpg") || f.isDirectory();
}
@Override
public String getDescription()
{
return "JPG-File (*.jpg)";
}
}); */
final ViewComponent viewComponent = new ViewComponent();
add( viewComponent );
final JTextArea textArea = new JTextArea();
final JScrollPane scrollPane = new JScrollPane(textArea);
add(scrollPane);
// add( new JScrollPane(textArea) );
//################# Filemenu => Untermenus ###############################################################################################
fileMenu.add(new AbstractAction()
{
{
putValue( Action.NAME, "Datei öffnen..." );
putValue( Action.ACCELERATOR_KEY , KeyStroke.getKeyStroke("ctrl O") );
putValue( Action.SMALL_ICON, new ImageIcon(MyEditor.class.getResource("/toolbarButtonGraphics/general/Open16.gif")) );
}
public void actionPerformed( ActionEvent e )
{
if ( fc.showOpenDialog( null ) == JFileChooser.APPROVE_OPTION )
{
File file = fc.getSelectedFile();
if(file.getName().toLowerCase().endsWith(".txt")) //Textdatei laden
{
FileReader in = null;
getContentPane().remove( viewComponent );
try {
textArea.read( in=new FileReader(fc.getSelectedFile()), null );
}
catch ( IOException ex ) {
textArea.setText( ex.getMessage() );
}
finally {
try { in.close(); } catch ( Exception ex ) { }
}
}
else if(file.getName().toLowerCase().endsWith(".jpg") || file.getName().toLowerCase().endsWith(".gif")) //JPEG oder GIF Datei laden
{
getContentPane().remove( scrollPane );
viewComponent.setImage( file );
}
}
}
});
Zuletzt bearbeitet: