File tree Expand file tree Collapse file tree 4 files changed +36
-0
lines changed
src/main/java/org/scijava/ui/swing Expand file tree Collapse file tree 4 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 3232
3333import java .awt .BorderLayout ;
3434import java .awt .Component ;
35+ import java .awt .event .ActionEvent ;
36+ import java .awt .event .ActionListener ;
3537import java .awt .event .WindowAdapter ;
3638import java .awt .event .WindowEvent ;
3739import java .io .File ;
3840
3941import javax .swing .JFileChooser ;
42+ import javax .swing .JMenu ;
4043import javax .swing .JMenuBar ;
44+ import javax .swing .JMenuItem ;
4145import javax .swing .JPopupMenu ;
4246import javax .swing .WindowConstants ;
4347
@@ -238,6 +242,22 @@ protected JMenuBar createMenus() {
238242 return menuBar ;
239243 }
240244
245+ protected JMenuBar createConsoleMenu () {
246+ final JMenuBar menuBar = new JMenuBar ();
247+ final JMenu edit = new JMenu ("Edit" );
248+ menuBar .add (edit );
249+ final JMenuItem editClear = new JMenuItem ("Clear" );
250+ editClear .addActionListener (new ActionListener () {
251+
252+ @ Override
253+ public void actionPerformed (ActionEvent e ) {
254+ getConsolePane ().clear ();
255+ }
256+ });
257+ edit .add (editClear );
258+ return menuBar ;
259+ }
260+
241261 /**
242262 * Configures the application frame for subclass-specific settings (e.g., SDI
243263 * or MDI).
Original file line number Diff line number Diff line change 3535import java .awt .Component ;
3636import java .awt .Dimension ;
3737import java .awt .Font ;
38+ import java .awt .FontMetrics ;
3839
3940import javax .swing .JPanel ;
4041import javax .swing .JScrollPane ;
@@ -102,6 +103,11 @@ public JScrollPane getScrollPane() {
102103 return scrollPane ;
103104 }
104105
106+ public void clear () {
107+ if (consolePanel == null ) initConsolePanel ();
108+ textPane .setText ("" );
109+ }
110+
105111 // -- ConsolePane methods --
106112
107113 @ Override
@@ -179,6 +185,14 @@ private synchronized void initConsolePanel() {
179185
180186 scrollPane = new JScrollPane (textPanel );
181187 scrollPane .setPreferredSize (new Dimension (600 , 600 ));
188+
189+ // Make the scroll bars move at a reasonable pace.
190+ final FontMetrics fm = scrollPane .getFontMetrics (scrollPane .getFont ());
191+ final int charWidth = fm .charWidth ('a' );
192+ final int lineHeight = fm .getHeight ();
193+ scrollPane .getHorizontalScrollBar ().setUnitIncrement (charWidth );
194+ scrollPane .getVerticalScrollBar ().setUnitIncrement (2 * lineHeight );
195+
182196 panel .add (scrollPane );
183197
184198 consolePanel = panel ;
Original file line number Diff line number Diff line change @@ -124,6 +124,7 @@ protected void setupConsole() {
124124 desktopPane .add (frame );
125125 frame .setDefaultCloseOperation (WindowConstants .DISPOSE_ON_CLOSE );
126126 frame .setContentPane (getConsolePane ().getComponent ());
127+ frame .setJMenuBar (createConsoleMenu ());
127128 frame .pack ();
128129 getConsolePane ().setWindow (frame );
129130 }
Original file line number Diff line number Diff line change @@ -115,6 +115,7 @@ protected void setupConsole() {
115115 final JFrame frame = new JFrame ("Console" );
116116 frame .setDefaultCloseOperation (WindowConstants .DISPOSE_ON_CLOSE );
117117 frame .setContentPane (getConsolePane ().getComponent ());
118+ frame .setJMenuBar (createConsoleMenu ());
118119 frame .pack ();
119120 getConsolePane ().setWindow (frame );
120121 }
You can’t perform that action at this time.
0 commit comments