Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.logging;
- public interface SimpleActivityLogger {
- void logAction(String message);
- void writeEntry(String s1); //*** I added this ***
- }
- public class SimpleComponentLogger implements SimpleActivityLogger{
- private JTextComponent target;
- private ArrayList data;
- public SimpleComponentLogger(JTextComponent target, ArrayList data){
- this.target = target;
- this.data = data;
- }
- public void logAction(final String message){
- SwingUtilities.invokeLater(new Runnable(){
- public void run(){
- target.setText(String.format("%s%s%n", new Object[]{target.getText(), message}));
- }
- });
- }
- public void writeEntry(String s1){
- data.add(s1);
- System.out.println("data array length: " + data.size());
- }
- }
- // this originally extended NotesThread,
- // but I assume you won't have that on your system
- public class LookupIterator3 extends Thread {
- private SimpleActivityLogger logger;
- // Constructor that passes logger instance
- public LookupIterator3(SimpleActivityLogger logger){
- this.logger = logger;
- }
- public void doLookup(){
- this.start();
- }
- public void run() {
- String[] words = {"the", "quick", "smart", "fox", "jumps", "over", "the", "lazy", "dog"};
- for(int i=0; i<words.length; i++){
- synchronized(words){
- try{
- logger.logAction(words[i]);
- words.wait(500);
- }
- catch(InterruptedException ie){ie.printStackTrace();}
- }
- logger.writeEntry(words[i]);
- }
- }
- }
- public class MySwingTest extends JFrame {
- private static final long serialVersionUID = 1L;
- private JTextField filename = new JTextField();
- private JTextField dir = new JTextField();
- private JTextPane output, answersPane;
- private JScrollPane scroller;
- private SimpleComponentLogger logger;
- private ArrayList answer;
- public MySwingTest() {
- JMenu fileMenu;
- JMenuBar menuBar;
- JMenuItem menuOpen, menuExit;
- JButton answerButton = new JButton("show answers");
- answerButton.addActionListener(new MyListener());
- menuBar = new JMenuBar();
- fileMenu = new JMenu("File");
- menuBar.add(fileMenu);
- menuOpen = new JMenuItem("open file");
- menuExit = new JMenuItem("exit");
- answer = new ArrayList();
- output = new JTextPane();
- logger = new SimpleComponentLogger(output, answer);
- scroller = new JScrollPane(output, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
- JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
- output.setEditable(false);
- answer = new ArrayList();
- answersPane = new JTextPane();
- answersPane.setSize(100, 200);
- answersPane.setEditable(false);
- fileMenu.add(menuOpen);
- fileMenu.add(menuExit);
- menuOpen.addActionListener(new MyListener());
- menuExit.addActionListener(new MyListener());
- JPanel p = new JPanel();
- p.setLayout(new GridLayout(2, 1));
- p.add(filename);
- p.add(dir);
- Container cp = getContentPane();
- cp.add(menuBar,BorderLayout.NORTH);
- cp.add(p);
- cp.add(scroller, BorderLayout.CENTER);
- cp.add(answersPane, BorderLayout.WEST);
- cp.add(answerButton, BorderLayout.SOUTH);
- dir.setEditable(false);
- filename.setEditable(false);
- }
- // Inner class listener
- class MyListener implements ActionListener {
- public void actionPerformed(ActionEvent e) {
- String eventCommand = e.getActionCommand();
- if(eventCommand.equals("exit")){
- System.exit(0);
- }
- if(eventCommand.equals("show answers")){
- String entry = (String)answer.get(0);
- answersPane.setText(entry);
- }
- else {
- LookupIterator3 lu3 = new LookupIterator3(logger);
- lu3.doLookup();
- }
- }
- }
- public static void main(String[] args) {
- run(new MySwingTest(), 450, 600);
- }
- public static void run(JFrame frame, int width, int height) {
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(width, height);
- frame.setVisible(true);
- }
- }
- answer = new ArrayList();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement