java 程序源代码.doc_第1页
java 程序源代码.doc_第2页
java 程序源代码.doc_第3页
java 程序源代码.doc_第4页
java 程序源代码.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实现翻页/源文件名:album.java/在下载源程序中的文件夹:0709相册import java.applet.*;import java.awt.*;import java.awt.event.*;public class album extends Applet implements ActionListener Image img; int j=0; String f; Label a1=new Label(文件名:); Label a2=new Label( ); Button btn1,btn2; public void init() img = new Image22; setLayout(null); setBackground(Color.cyan); add(a1); add(a2); btn1= new Button(下一页); btn2= new Button(上一页); add(btn1); add(btn2); a1.setBounds(650,60,60,30); a2.setBounds(650,80,110,60); a2.setBounds(650,80,110,60); a1.setBackground(Color.cyan); a2.setBackground(Color.cyan); a2.setForeground(Color.red); Font ft = new Font(Times New Romon,1,20); a2.setFont(ft); btn1.setBounds(650,180,60,30); btn2.setBounds(650,240,60,30); btn1.addActionListener(this); btn2.addActionListener(this); for (int i=0;i21) j=0; if(e.getSource()=btn2) j-; if(j0) j=21; repaint(); 实现图行化界面package swt_jface.demo11; import org.eclipse.swt.SWT; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.printing.PrintDialog; import org.eclipse.swt.printing.Printer; import org.eclipse.swt.printing.PrinterData; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.FileDialog; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; public class ImageViewer Display display = new Display(); Shell shell = new Shell(display); Canvas canvas; Image image; String fileName; public ImageViewer() shell.setText(Image viewer); shell.setLayout(new GridLayout(1, true); ToolBar toolBar = new ToolBar(shell, SWT.FLAT); ToolItem itemOpen = new ToolItem(toolBar, SWT.PUSH); itemOpen.setText(Open); itemOpen.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) FileDialog dialog = new FileDialog(shell, SWT.OPEN); String file = dialog.open(); if (file != null) if (image != null) image.dispose(); image = null; try image = new Image(display, file); catch (RuntimeException e) if (image != null) fileName = file; else System.err.println( Failed to load image from file: + file); canvas.redraw(); ); ToolItem itemPrintPreview = new ToolItem(toolBar, SWT.PUSH); itemPrintPreview.setText(Preview); itemPrintPreview.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) ImagePrintPreviewDialog dialog = new ImagePrintPreviewDialog(ImageViewer.this); dialog.open(); ); ToolItem itemPrint = new ToolItem(toolBar, SWT.PUSH); itemPrint.setText(Print); itemPrint.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) print(); ); canvas = new Canvas(shell, SWT.BORDER); canvas.setBackground(display.getSystemColor(SWT.COLOR_WHITE); canvas.setLayoutData(new GridData(GridData.FILL_BOTH); canvas.addPaintListener(new PaintListener() public void paintControl(PaintEvent e) if (image = null) e.gc.drawString(No image, 0, 0); else e.gc.drawImage(image, 0, 0); ); image = new Image(display, C:/icons/scene.jpg); fileName = scene.jpg; shell.setSize(500, 400); shell.open(); while (!shell.isDisposed() if (!display.readAndDispatch() display.sleep(); display.dispose(); void print() PrintDialog dialog = new PrintDialog(shell); PrinterData printerData = dialog.open(); if (printerData = null) return; Printer printer = new Printer(printerData); print(printer, null); void print(final Printer printer, PrintMargin printMargin) if (image = null) return; final Point printerDPI = printer.getDPI(); final Point displayDPI = display.getDPI(); System.out.println(displayDPI + + printerDPI); final PrintMargin margin = (printMargin = null ? PrintMargin.getPrintMargin(printer, 1.0) : printMargin); Thread printThread = new Thread() public void run() if (!printer.startJob(fileName) System.err.println(Failed to start print job!); printer.dispose(); return; GC gc = new GC(printer); if (!printer.startPage() System.err.println(Failed to start a new page!); gc.dispose(); return; else int imageWidth = image.getBounds().width; int imageHeight = image.getBounds().height; double dpiScaleFactorX = printerDPI.x * 1.0 / displayDPI.x; double dpiScaleFactorY = printerDPI.y * 1.0 / displayDPI.y; double imageSizeFactor = Math.min( 1, (margin.right - margin.left) * 1.0 / (dpiScaleFactorX * imageWidth); imageSizeFactor = Math.min( imageSizeFactor, (margin.bottom - margin.top) * 1.0 / (dpiScaleFactorY * imageHeight); gc.drawImage( image, 0, 0, imageWidth, imageHeight, margin.left, margin.top, (int) (dpiScaleFactorX * imageSizeFactor * imageWidth), (int) (dpiScaleFactorY * imageSizeFactor * imageHeight); gc.dispose(); printer.endPage(); printer.endJob(); printer.dispose(); System.out.println(Printing job done!); ; printThread.start(); public static void main(String args) new ImageViewer(); ImagePrintPreviewDialog.java 复制代码 代码如下:package swt_jface.demo11; import org.eclipse.swt.SWT; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.printing.PrintDialog; import org.eclipse.swt.printing.Printer; import org.eclipse.swt.printing.PrinterData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Dialog; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; public class ImagePrintPreviewDialog extends Dialog ImageViewer viewer; Shell shell; Canvas canvas; Printer printer; PrintMargin margin; Combo combo; public ImagePrintPreviewDialog(ImageViewer viewer) super(viewer.shell); this.viewer = viewer; public void open() shell = new Shell( viewer.shell, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE); shell.setText(Print preview); shell.setLayout(new GridLayout(4, false); final Button buttonSelectPrinter = new Button(shell, SWT.PUSH); buttonSelectPrinter.setText(Select a printer); buttonSelectPrinter.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) PrintDialog dialog = new PrintDialog(shell); PrinterData printerData = dialog.open(); if (printerData = null) return; final Printer printer = new Printer(printerData); setPrinter( printer, Double.parseDouble( combo.getItem(combo.getSelectionIndex(); ); new Label(shell, SWT.NULL).setText(Margin in inches: ); combo = new Combo(shell, SWT.READ_ONLY); combo.add(0.5); combo.add(1.0); combo.add(1.5); combo.add(2.0); combo.add(2.5); combo.add(3.0); combo.select(1); combo.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) double value = Double.parseDouble( combo.getItem(combo.getSelectionIndex(); setPrinter(printer, value); ); final Button buttonPrint = new Button(shell, SWT.PUSH); buttonPrint.setText(Print); buttonPrint.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) if (printer = null) viewer.print(); else viewer.print(printer, margin); shell.dispose(); ); canvas = new Canvas(shell, SWT.BORDER); GridData gridData = new GridData(GridData.FILL_BOTH); gridData.horizontalSpan = 4; canvas.setLayoutData(gridData); canvas.addPaintListener(new PaintListener() public void paintControl(PaintEvent e) int canvasBorder = 20; if (printer = null | printer.isDisposed() return; Rectangle rectangle = printer.getBounds(); Point canvasSize = canvas.getSize(); double viewScaleFactor = (canvasSize.x - canvasBorder * 2) * 1.0 / rectangle.width; viewScaleFactor = Math.min( viewScaleFactor, (canvasSize.y - canvasBorder * 2) * 1.0 / rectangle.height); int offsetX = (canvasSize.x - (int) (viewScaleFactor * rectangle.width) / 2; int offsetY = (canvasSize.y - (int) (viewScaleFactor * rectangle.height) / 2; e.gc.setBackground( shell.getDisplay().getSystemColor(SWT.COLOR_WHITE); e.gc.fillRectangle( offsetX, offsetY, (int) (viewScaleFactor * rectangle.width), (int) (viewScaleFactor * rectangle.height); e.gc.setLineStyle(SWT.LINE_DASH); e.gc.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_BLACK); int marginOffsetX = offsetX + (int) (viewScaleFactor * margin.left); int marginOffsetY = offsetY + (int) (viewScaleFactor * margin.top); e.gc.drawRectangle( marginOffsetX, marginOffsetY, (int) (viewScaleFactor * (margin.right - margin.left), (int) (viewScaleFactor * (margin.bottom - margin.top); if (viewer.image != null) int imageWidth = viewer.image.getBounds().width; int imageHeight = viewer.image.getBounds().height; double dpiScaleFactorX = printer.getDPI().x * 1.0 / shell.getDisplay().getDPI().x; double dpiScaleFactorY = printer.getDPI().y * 1.0 / shell.getDisplay().getDPI().y; double imageSizeFactor = Math.min( 1, (margin.right - margin.left) * 1.0 / (dpiScaleFactorX * imageWidth); imageSizeFactor = Math.min( imageSizeFactor, (margin.bottom - margin.top) * 1.0 / (dpiScaleFactorY * imageHeight); e.gc.drawImage( viewer.image, 0, 0, imageWidth, imageHeight, marginOffsetX, marginOffsetY, (int) (dpiScaleFactorX * imageSizeFactor * imageWidth * viewScaleFactor), (int) (dpiScaleFactorY * imageSizeFactor * imageHeight * viewScaleFactor); ); shell.setSize(400, 400); shell.open(); setPrinter(null, 1.0); while (!shell.isDisposed() if (!shell.getDisplay().readAndDispatch() shell.getDisplay().sleep(); void setPrinter(Printer printer, double marginSize) if (printer = null) printer = new Printer(Printer.getDefaultPrinterData(); this.printer = printer; margin = PrintMargin.getPrintMargin(printer, marginSize); canvas.redraw(); package swt_jface.demo11; import org.eclipse.swt.SWT; import org.eclipse.swt.events.PaintEvent; import org.eclipse.swt.events.PaintListener; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.printing.PrintDialog; import org.eclipse.swt.printing.Printer; import org.eclipse.swt.printing.PrinterData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Dialog; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; public class ImagePrintPreviewDialog extends Dialog ImageViewer viewer; Shell shell; Canvas canvas; Printer printer; PrintMargin margin; Combo combo; public ImagePrintPreviewDialog(ImageViewer viewer) super(viewer.shell); this.viewer = viewer; public void open() shell = new Shell( viewer.shell, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE); shell.setText(Print preview); shell.setLayout(new GridLayout(4, false); final Button buttonSelectPrinter = new Button(shell, SWT.PUSH); buttonSelectPrinter.setText(Select a printer); buttonSelectPrinter.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) PrintDialog dialog = new PrintDialog(shell); PrinterData printerData = dialog.open(); if (printerData = null) return; final Printer printer = new Printer(printerData); setPrinter( printer, Double.parseDouble( combo.getItem(combo.getSelectionIndex(); ); new Label(shell, SWT.NULL).setText(Margin in inches: ); combo = new Combo(shell, SWT.READ_ONLY); combo.add(0.5); combo.add(1.0); combo.add(1.5); combo.add(2.0); combo.add(2.5); combo.add(3.0); combo.select(1); combo.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) double value = Double.parseDouble( combo.getItem(combo.getSelectionIndex(); setPrinter(printer, value); ); final Button buttonPrint = new Button(shell, SWT.PUSH); buttonPrint.setText(Print); buttonPrint.addListener(SWT.Selection, new Listener() public void handleEvent(Event event) if (printer = null) viewer.print(); else viewer.print(printer, margin); shell.dispose(); ); canvas = new Canvas(shell, SWT.BORDER); GridData gridData = new GridData(GridData.FILL_BOTH); gridData.horizontalSpan = 4; canvas.setLayoutData(gridData); canvas.addPaintListener(new PaintListener() public void paintControl(PaintEvent e) int canvasBorder = 20; if (printer = null | printer.isDisposed() return; Rectangle rectangle = printer.getBounds(); Point canvasSize = canvas.getSize(); double viewScaleFactor = (canvasSize.x - canvasBorder * 2) * 1.0 / rectangle.width; viewScaleFactor = Math.min( viewScaleFactor, (canvasSize.y - canvasBorder * 2) * 1.0 / rectangle.height); int offsetX = (canvasSize.x - (int) (viewScaleFactor * rectangle.width) / 2; int offsetY = (canvasSize.y - (int) (viewScaleFactor * rectangle.height) / 2; e.gc.setBackground( shell.getDisplay().getSystemColor(SWT.COLOR_WHITE); e.gc.fillRectangle( offsetX, offsetY, (int) (viewScaleFactor * rectangle.width), (int) (viewScaleFactor * rectangle.height); e.gc.setLineStyle(SWT.LINE_DASH); e.gc.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_BLACK); int marginOffsetX = offsetX + (int) (viewScaleFactor * margin.left); int marginOffsetY = offsetY + (int) (viewScaleFactor * margin.top); e.gc.drawRectangle( marginOffsetX, marginOffsetY, (int) (viewScaleFactor * (margin.right - margin.left), (int) (viewScaleFactor * (margin.bottom - margin.top); if (viewer.image != null) int imageWidth = viewer.image.getBounds().width; int imageHeight = viewer.image.getBounds().height; double dpiScaleFactorX = printer.getDPI().x * 1.0 / shell.getDisplay().getDPI().x; double dpiScaleFactorY = printer.getDPI().y * 1.0 / shell.getDisplay().getDPI().y; double imageSizeFactor = Math.min( 1, (margin.right - margin.left) * 1.0 / (dpiScaleFactorX * imageWidth); imageSizeFactor = Math.min( imageSizeFactor, (margin.bottom - margin.top) * 1.0 / (dpiScaleFactorY * imageHeight); e.gc.drawImage( viewer.image, 0, 0, imageWidth, imageHeight, marginOffsetX, marginOffsetY, (int) (dpiScaleFactorX * imageSizeFactor * imageWidth * viewScaleFactor), (int) (dpiScaleFactorY * imageSizeFactor * imageHeight * viewScaleFactor); ); shell.setSize(400, 400); shell.open(); setPrinter(null, 1.0); while (!shell.isDisposed() if (!shell.getDisplay().readAndDispatch() shell.getDisplay().sleep(); void setPrinter(Printer printer, double marginSize) if (printer = null) printer = new Printer(Printer.getDefaultPrinterData(); this.printer = printer; margin = PrintMargin.getPrintMargin(printer, marginSize); canvas.redraw(); PrintMargin.java 复制代码 代码如下:package swt_jface.demo11; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.printing.Printer; public class PrintMargin public int left; public int right; public int top; public int bottom; private PrintMargin(int left, int right, int top, int bottom) this.left = left; this.right = right; this.top = top; this.bottom = bottom; static PrintMargin getPrintMargin(Printer printer, double margin) return getPrintMargin(printer, margin, margin, margin, margin); static PrintMargin getPrintMargin( Printer printer, double marginLeft, double marginRight, double marginTop, double marginBottom) Rectangle clientArea = printer.getClientArea(); Rectangle trim = puteTrim(0, 0, 0, 0); Point dpi = printer.getDPI(); int leftMargin = (int) (marginLeft * dpi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论