|
35 | 35 | import java.awt.Font; |
36 | 36 | import java.awt.FontMetrics; |
37 | 37 |
|
| 38 | +import javax.swing.JMenuItem; |
38 | 39 | import javax.swing.JPanel; |
| 40 | +import javax.swing.JPopupMenu; |
39 | 41 | import javax.swing.JScrollPane; |
40 | 42 | import javax.swing.JTextArea; |
41 | 43 | import javax.swing.JTextPane; |
| 44 | +import javax.swing.KeyStroke; |
42 | 45 | import javax.swing.text.BadLocationException; |
43 | 46 | import javax.swing.text.Style; |
44 | 47 | import javax.swing.text.StyleConstants; |
@@ -109,7 +112,7 @@ private synchronized void initGui() { |
109 | 112 | setLayout(new MigLayout("inset 0", "[grow,fill]", "[grow,fill,align top]")); |
110 | 113 |
|
111 | 114 | textPane = new JTextPane(); |
112 | | - textPane.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12)); |
| 115 | + textPane.setFont(new Font(Font.MONOSPACED, Font.PLAIN, textPane.getFont().getSize())); |
113 | 116 | textPane.setEditable(false); |
114 | 117 |
|
115 | 118 | doc = textPane.getStyledDocument(); |
@@ -137,9 +140,23 @@ private synchronized void initGui() { |
137 | 140 | final int lineHeight = fm.getHeight(); |
138 | 141 | scrollPane.getHorizontalScrollBar().setUnitIncrement(charWidth); |
139 | 142 | scrollPane.getVerticalScrollBar().setUnitIncrement(2 * lineHeight); |
140 | | - |
| 143 | + textPane.setComponentPopupMenu(initMenu()); |
141 | 144 | add(scrollPane); |
142 | 145 | } |
| 146 | + |
| 147 | + private JPopupMenu initMenu() { |
| 148 | + final JPopupMenu menu = new JPopupMenu(); |
| 149 | + JMenuItem item = new JMenuItem("Copy"); |
| 150 | + item.setAccelerator(KeyStroke.getKeyStroke("control C")); |
| 151 | + item.addActionListener( e-> textPane.copy()); |
| 152 | + menu.add(item); |
| 153 | + item = new JMenuItem("Clear"); |
| 154 | + item.setAccelerator(KeyStroke.getKeyStroke("alt C")); |
| 155 | + item.addActionListener(e -> clear()); |
| 156 | + menu.add(item); |
| 157 | + return menu; |
| 158 | + } |
| 159 | + |
143 | 160 | // -- Helper methods -- |
144 | 161 |
|
145 | 162 | private Style createStyle(final String name, final Style parent, |
|
0 commit comments