Console.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package ui.view;
  2. import java.awt.BorderLayout;
  3. import java.awt.Component;
  4. import java.awt.FlowLayout;
  5. import javax.swing.Box;
  6. import javax.swing.JButton;
  7. import javax.swing.JPanel;
  8. import javax.swing.JScrollPane;
  9. import javax.swing.JTextArea;
  10. import javax.swing.JToolBar;
  11. import javax.swing.text.DefaultCaret;
  12. /**
  13. * Little new swing object to print data to a console.
  14. * @author tom
  15. *
  16. */
  17. public class Console extends JPanel {
  18. private JTextArea textArea = new JTextArea();
  19. private JScrollPane scrollPane;
  20. public Console() {
  21. super();
  22. this.setLayout(new BorderLayout());
  23. textArea.setEditable(false);
  24. DefaultCaret caret = (DefaultCaret)textArea.getCaret();
  25. caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
  26. scrollPane = new JScrollPane(textArea);
  27. this.add(scrollPane, BorderLayout.CENTER);
  28. JToolBar roolBar = new JToolBar();
  29. roolBar.setFloatable(false);
  30. JButton clearButton = new JButton("Clear");
  31. clearButton.addActionListener(actionEvent -> clear());
  32. roolBar.add(clearButton);
  33. roolBar.add(Box.createHorizontalGlue());
  34. JButton topButton = new JButton("Top");
  35. topButton.addActionListener(actionEvent -> scrollToTop());
  36. roolBar.add(topButton);
  37. JButton botButton = new JButton("Bottom");
  38. botButton.addActionListener(actionEvent -> scrollToBottom());
  39. roolBar.add(botButton);
  40. scrollPane.setColumnHeaderView(roolBar);
  41. }
  42. private void scrollToTop() {
  43. textArea.setCaretPosition(0);
  44. }
  45. private void scrollToBottom() {
  46. textArea.setCaretPosition(textArea.getDocument().getLength());
  47. }
  48. public void clear() {
  49. textArea.setText("");
  50. }
  51. public void print(String message) {
  52. textArea.append(message);
  53. }
  54. public void println(String message) {
  55. textArea.append(message + "\n");
  56. }
  57. }