hi,
ich verwende bei meinem editor ein CardLayout.
dabei kann entweder eine JTextArea oder eine JComponent
gerade angezeigt werden.
Gibt es eine möglichkeit zu erfragen, welche der beiden komponenten gerade angezeigt wird?
ich möchte nämlich folgenden Programmcode schreiben.
Das zu programmieren Stück wird in Zeile 73-80 sein.
zum besseren verständnis hab ich aber noch einige programmfragmente aus meinem editor eingefügt.
ich verwende bei meinem editor ein CardLayout.
dabei kann entweder eine JTextArea oder eine JComponent
gerade angezeigt werden.
Gibt es eine möglichkeit zu erfragen, welche der beiden komponenten gerade angezeigt wird?
ich möchte nämlich folgenden Programmcode schreiben.
Das zu programmieren Stück wird in Zeile 73-80 sein.
zum besseren verständnis hab ich aber noch einige programmfragmente aus meinem editor eingefügt.
Java:
....
....
....
final ViewComponent viewComponent = new ViewComponent();
final JTextArea textArea = new JTextArea();
final JScrollPane scrollPane = new JScrollPane(textArea);
final JPanel cards = new JPanel(new CardLayout());
cards.add(scrollPane, "Textdateien");
cards.add(viewComponent, "Bilddateien");
getContentPane().add(cards);
final CardLayout cl = (CardLayout)(cards.getLayout());
....
....
....
//Datei öffnen
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;
cl.show(cards, "Textdateien");
try {
textArea.read( in=new FileReader(file), 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
{
cl.show(cards, "Bilddateien");
viewComponent.setImage( file );
}
}
}
});
....
....
....
//Datei speichern
fileMenu.add(new AbstractAction()
{
{
putValue(Action.NAME, "Speichern");
putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("ctrl S"));
putValue(Action.SMALL_ICON, new ImageIcon(MyEditor.class.getResource("/toolbarButtonGraphics/general/Save16.gif")));
}
public void actionPerformed(ActionEvent e)
{
//if(JTextArea als vorderse Karte angezeigt)
{
//speichern in eine textdatei
}
//else if(JComponent als vorderste Karte angezeigt)
{
//speichern in jpg/gif datei
}
}
});