Soeben habe ich in der Java-Insel Folgendes gefunden:
Man schaue sich einmal Z16 an:
Oder auch Z21:
Hier werden die Referenzvariablen als final deklariert - wieso?
Und weshalb werden der JButton und das JFrame (Z13 & Z25) nicht als final angegeben?
Hutmacher
Java:
package com.tutego.insel.ui.undo;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.UndoableEditEvent;
import javax.swing.undo.*;
public class IComeUndone
{
public static void main( String[] args )
{
JFrame f = new JFrame();
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
final JTextArea textarea = new JTextArea( 20, 40 );
textarea.setText( "Hier zurück" );
f.add( new JScrollPane(textarea) );
// final UndoManager undomanager = new MyUndoManager();
final UndoManager undomanager = new UndoManager();
textarea.getDocument().addUndoableEditListener( undomanager );
undomanager.setLimit( 1000 );
JButton undoB = new JButton( "Undo" );
undoB.addActionListener( new ActionListener() {
@Override public void actionPerformed( ActionEvent e )
{
undomanager.end();
if ( undomanager.canUndo() )
undomanager.undo();
textarea.requestFocus();
}
} );
f.add( undoB, BorderLayout.PAGE_END );
f.pack();
f.setVisible( true );
}
}
Man schaue sich einmal Z16 an:
Java:
final JTextArea textarea = new JTextArea( 20, 40 );
Java:
final UndoManager undomanager = new UndoManager();
Und weshalb werden der JButton und das JFrame (Z13 & Z25) nicht als final angegeben?
Hutmacher