|
@@ -1,7 +1,12 @@
|
|
package ui.view;
|
|
package ui.view;
|
|
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Color;
|
|
-
|
|
|
|
|
|
+import java.awt.Toolkit;
|
|
|
|
+import java.awt.datatransfer.StringSelection;
|
|
|
|
+import java.awt.event.ActionEvent;
|
|
|
|
+import java.awt.event.ActionListener;
|
|
|
|
+import java.awt.event.MouseAdapter;
|
|
|
|
+import java.awt.event.MouseEvent;
|
|
import javax.swing.JScrollPane;
|
|
import javax.swing.JScrollPane;
|
|
|
|
|
|
import java.awt.BorderLayout;
|
|
import java.awt.BorderLayout;
|
|
@@ -10,7 +15,9 @@ import javax.swing.text.BadLocationException;
|
|
import javax.swing.text.Style;
|
|
import javax.swing.text.Style;
|
|
import javax.swing.text.StyleConstants;
|
|
import javax.swing.text.StyleConstants;
|
|
import javax.swing.text.StyledDocument;
|
|
import javax.swing.text.StyledDocument;
|
|
|
|
+import javax.swing.JMenuItem;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JPanel;
|
|
|
|
+import javax.swing.JPopupMenu;
|
|
|
|
|
|
public class Console extends JScrollPane {
|
|
public class Console extends JScrollPane {
|
|
|
|
|
|
@@ -23,6 +30,11 @@ public class Console extends JScrollPane {
|
|
private Style style;
|
|
private Style style;
|
|
private StyledDocument doc;
|
|
private StyledDocument doc;
|
|
|
|
|
|
|
|
+ // PopUpMenu
|
|
|
|
+ private JPopupMenu popmenu = new JPopupMenu();
|
|
|
|
+ private JMenuItem itemCopy = new JMenuItem("Copy");
|
|
|
|
+ private JMenuItem itemClear = new JMenuItem("Clear Console");
|
|
|
|
+
|
|
public Console() {
|
|
public Console() {
|
|
super();
|
|
super();
|
|
this.setBackground(Color.WHITE);
|
|
this.setBackground(Color.WHITE);
|
|
@@ -37,7 +49,38 @@ public class Console extends JScrollPane {
|
|
panel.setLayout(new BorderLayout(0, 0));
|
|
panel.setLayout(new BorderLayout(0, 0));
|
|
panel.setBackground(Color.WHITE);
|
|
panel.setBackground(Color.WHITE);
|
|
panel.add(consoleText);
|
|
panel.add(consoleText);
|
|
|
|
+
|
|
setViewportView(panel);
|
|
setViewportView(panel);
|
|
|
|
+
|
|
|
|
+ // PopUpMenu
|
|
|
|
+ popmenu.add(itemCopy);
|
|
|
|
+ popmenu.add(itemClear);
|
|
|
|
+
|
|
|
|
+ itemCopy.addActionListener(new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ Toolkit.getDefaultToolkit().getSystemClipboard()
|
|
|
|
+ .setContents(new StringSelection(consoleText.getSelectedText()), null);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ itemClear.addActionListener(new ActionListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void actionPerformed(ActionEvent e) {
|
|
|
|
+ clearConsole();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ // MouseListener
|
|
|
|
+ consoleText.addMouseListener(new MouseAdapter() {
|
|
|
|
+ @Override
|
|
|
|
+ public void mouseReleased(MouseEvent e) {
|
|
|
|
+ if (e.getButton() == e.BUTTON3) {
|
|
|
|
+ itemClear.setEnabled(!consoleText.getText().isEmpty());
|
|
|
|
+ popmenu.show(e.getComponent(), e.getX(), e.getY());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -72,7 +115,7 @@ public class Console extends JScrollPane {
|
|
} catch (BadLocationException e) {
|
|
} catch (BadLocationException e) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Print Text on the console in black and font size 12
|
|
* Print Text on the console in black and font size 12
|
|
*
|
|
*
|
|
@@ -86,7 +129,7 @@ public class Console extends JScrollPane {
|
|
StyleConstants.setItalic(style, false);
|
|
StyleConstants.setItalic(style, false);
|
|
|
|
|
|
try {
|
|
try {
|
|
- doc.insertString(doc.getLength(), text+"\n", style);
|
|
|
|
|
|
+ doc.insertString(doc.getLength(), text + "\n", style);
|
|
} catch (BadLocationException e) {
|
|
} catch (BadLocationException e) {
|
|
}
|
|
}
|
|
}
|
|
}
|