dmolony-DiskBrowser/src/com/bytezone/diskbrowser/gui/PrintAction.java

62 lines
1.9 KiB
Java
Executable File

package com.bytezone.diskbrowser.gui;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javax.swing.Action;
import javax.swing.KeyStroke;
import com.bytezone.diskbrowser.utilities.DefaultAction;
// -----------------------------------------------------------------------------------//
class PrintAction extends DefaultAction
// -----------------------------------------------------------------------------------//
{
OutputPanel owner;
// ---------------------------------------------------------------------------------//
public PrintAction (OutputPanel owner)
// ---------------------------------------------------------------------------------//
{
super ("Print...", "Print the contents of the output panel",
"/com/bytezone/diskbrowser/icons/");
int mask = Toolkit.getDefaultToolkit ().getMenuShortcutKeyMaskEx ();
putValue (Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke (KeyEvent.VK_P, mask));
// putValue (Action.MNEMONIC_KEY, KeyEvent.VK_P);
this.owner = owner;
setIcon (Action.SMALL_ICON, "printer_16.png");
setIcon (Action.LARGE_ICON_KEY, "printer_32.png");
}
// ---------------------------------------------------------------------------------//
@Override
public void actionPerformed (ActionEvent e)
// ---------------------------------------------------------------------------------//
{
Runnable runner = new Runnable ()
{
@Override
public void run ()
{
try
{
PrinterJob job = PrinterJob.getPrinterJob ();
job.setPrintable (new PrintDocument (owner.getCurrentText ()));
if (job.printDialog ())
job.print ();
}
catch (PrinterException e)
{
System.out.println ("printer error");
}
}
};
EventQueue.invokeLater (runner);
}
}