java代碼打印信息嗎 java打印的代碼
用Java代碼生成打印收據(jù)
首先 來(lái)看看效果 如下圖
代碼如下
PrintTest java
import java awt BasicStroke;
import java awt Color;
import java awt Font;
import java awt Graphics;
import java awt Graphics D;
import java awt print Book;
import java awt print PageFormat;
import java awt print Paper;
import java awt print Printable;
import java awt print PrinterException;
import java awt print PrinterJob;
import java text SimpleDateFormat;
import java util Date;
import snjp model RentDetail;
import snjp parameter RentRecordParameter;
public class PrintTest implements Printable
{
private String roomID;
private Date printDate;
private Integer rentType;
private Float waterFee;
private Float electricityFee;
private Float rent;
private String remark;
private static int RECEIPT_NO = ;
public PrintTest()
{
}
public PrintTest printTest;
public PrintTest(RentRecordParameter prentRecord RentDetail prentDetail)
{
this roomID = prentRecord getRoomId()+ 房間 ;
this printDate = prentRecord getRegisterDate();
this rentType = prentRecord getRentType();
this waterFee = prentDetail getWaterBill();
this electricityFee = prentDetail getElectricityBill();
this rent = prentDetail getRent();
this remark = prentDetail getRemark();
}
/** */
/**
* @param Graphic指明打印的圖形環(huán)境
* @param PageFormat指明打印頁(yè)格式(頁(yè)面大小以點(diǎn)為計(jì)量單位 點(diǎn)為 英才的 / 英寸為 毫米 A 紙大致為 × 點(diǎn))
* @param pageIndex指明頁(yè)號(hào)
**/
public int print(Graphics graphics PageFormat pf int pageIndex)
throws PrinterException
{
//print string
String receiptTitle = 收款收據(jù) ;
String content = 今收到 ;
String feeItem = null;
Float rentTotal = f;
String content = 總計(jì)人民幣(大寫(xiě)) ;
//收款的內(nèi)容(根據(jù)租賃類型 只有 房租 房租 水費(fèi) 電費(fèi) 兩種值)
switch(this rentType)
{
case :
feeItem = 房租 押金 ;
rentTotal=this rent;
break;
case :
feeItem = 房租 押金 水費(fèi) 電費(fèi) ;
rentTotal=this rent+this electricityFee+this waterFee;
break;
default:
feeItem = 未知收費(fèi)項(xiàng)目 ;
}
//轉(zhuǎn)換成Graphics D
Graphics D graphics D = (Graphics D) graphics;
//設(shè)置打印顏色為黑色
graphics D setColor(Color black);
//打印起點(diǎn)坐標(biāo)x=
double x = pf getImageableX();
double y = pf getImageableY();
System out println( 打印起點(diǎn)坐標(biāo)值是{ +x+ +y+ } );
switch (pageIndex)
{
case :
//設(shè)置打印字體(字體名稱 樣式和點(diǎn)大?。ㄗ煮w名稱可以是物理或者邏輯名稱)
//Java平臺(tái)所定義的五種字體系列 Serif SansSerif Monospaced Dialog 和 DialogInput
Font font = new Font( 新宋體 Font TRUETYPE_FONT );
graphics D setFont(font);//設(shè)置字體
BasicStroke?? basicStroke=new?? BasicStroke( f);
float[] dash = { f };
//設(shè)置打印線的屬性
// 線寬; ; ; 空白的寬度; 虛線的寬度; 偏移量
//??????????????? graphics D setStroke(new BasicStroke( f
//??????????????????????????????? BasicStroke CAP_BUTT BasicStroke JOIN_MITER
//??????????????????????????????? f dash f));
//graphics D setStroke(new BasicStroke( f));
graphics D setStroke(basicStroke);//設(shè)置線寬
float height = font getSize D();//字體高度
System out println( 字體高度是 +height);
//繪制收據(jù)標(biāo)題
graphics D drawString(receiptTitle (float) y + * height);
//繪制收據(jù)編號(hào)
String receiptNo = String valueOf(RECEIPT_NO);
graphics D drawString( No : +GlobalMethod get String(receiptNo ) (float)x* (float) y + * height);
//繪制打印時(shí)間
SimpleDateFormat myDateFormat = new SimpleDateFormat( yyyy年MM月dd日 );
graphics D drawString(myDateFormat format(printDate) (float)x* (float) y + * height);
//繪制收據(jù)標(biāo)題下面的第一條橫線
graphics D drawLine(
(int) (y + * height+ )
(int) (y + * height+ )
);
//繪制收據(jù)標(biāo)題下面的第二條橫線
graphics D drawLine(
(int) (y + * height+ )
(int) (y + * height+ )
);
//正文 ——今收到
graphics D drawString(content (float) x* (float) y + * height);
//收費(fèi)項(xiàng)目名稱
graphics D drawString(this roomID+feeItem (float) x* (float) y + * height);
//繪制正文 下劃線
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
//人民幣(大寫(xiě))
graphics D drawString(content +Money NumToRMBStr(rentTotal) (float) x* (float) y + * height);
//繪制人民幣(大寫(xiě))下劃線
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
//(小寫(xiě))
graphics D drawString( (小寫(xiě)) +rentTotal+ 元 (float) x* (float) y + * height);
//繪制(小寫(xiě))下劃線
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
//附注
graphics D drawString( 附注: +this remark (float) x* (float) y + * height);
//繪制附注下劃線
graphics D drawLine(
(int)x* +
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
// 簽字(收款人)
graphics D drawString( 簽字(收款人) (float) x* + (float) y + * height);
//簽字(收款人)下劃線
graphics D drawLine(
(int)x*
(int) (y + * height+ )
(int)x+
(int) (y + * height+ )
);
return PAGE_EXISTS;
default:
RECEIPT_NO=RECEIPT_NO ;
return NO_SUCH_PAGE;
}
}
//方法調(diào)用
public? void printReceipt(PrintTest printTest){
//通俗理解就是書(shū) 文檔
Book book = new Book();
//設(shè)置成豎打
PageFormat pf = new PageFormat();
pf setOrientation(PageFormat PORTRAIT);
//通過(guò)Paper設(shè)置頁(yè)面的空白邊距和可打印區(qū)域 必須與實(shí)際打印紙張大小相符
Paper p = new Paper();
p setSize( );//紙張大小
p setImageableArea( );//A ( X )設(shè)置打印區(qū)域 其實(shí) 應(yīng)該是 因?yàn)锳 紙的默認(rèn)X Y邊距是
pf setPaper(p);
//把 PageFormat 和 Printable 添加到書(shū)中 組成一個(gè)頁(yè)面
book append(printTest pf);
//獲取打印服務(wù)對(duì)象
PrinterJob job = PrinterJob getPrinterJob();
//設(shè)置打印類
job setPageable(book);
try
{
//可以用printDialog顯示打印對(duì)話框 在用戶確認(rèn)后打印 也可以直接打印
//??????????? boolean isShowing=job printDialog();
//??????????? if(isShowing)
//??????????? {
//????????????? System out println(this printDate+ ************* );
RECEIPT_NO=RECEIPT_NO+ ;
job print();
//??????????? }
}
catch (PrinterException e)
{
e printStackTrace();
}
}
public static void main(String[] args)
{
//??? 通俗理解就是書(shū) 文檔
Book book = new Book();
//??? 設(shè)置成豎打
PageFormat pf = new PageFormat();
pf setOrientation(PageFormat PORTRAIT);
//??? 通過(guò)Paper設(shè)置頁(yè)面的空白邊距和可打印區(qū)域 必須與實(shí)際打印紙張大小相符
Paper p = new Paper();
p setSize( );//紙張大小
p setImageableArea( );//A ( X )設(shè)置打印區(qū)域 其實(shí) 應(yīng)該是 因?yàn)锳 紙的默認(rèn)X Y邊距是
pf setPaper(p);
//??? 把 PageFormat 和 Printable 添加到書(shū)中 組成一個(gè)頁(yè)面
book append(new PrintTest() pf);
//獲取打印服務(wù)對(duì)象
PrinterJob job = PrinterJob getPrinterJob();
// 設(shè)置打印類
job setPageable(book);
try
{
//可以用printDialog顯示打印對(duì)話框 在用戶確認(rèn)后打印 也可以直接打印
//boolean a=job printDialog();
//if(a)
//{
job print();
//}
}
catch (PrinterException e)
{
e printStackTrace();
}
}
lishixinzhi/Article/program/Java/hx/201311/25778
java代碼的打印信息控件怎么做?或者有現(xiàn)成的代碼也行。
一: 首先理清業(yè)務(wù)邏輯
兩個(gè)窗口, 第一個(gè)主窗口, 是用于填寫(xiě)信息的, 點(diǎn)擊按鈕后,跳轉(zhuǎn)到第二個(gè)窗口,.
第二個(gè)對(duì)話框窗口 ,用于顯示需要打印的信息, 以及打印到文檔
二: 確定需要的技術(shù), java圖像界面主要使用awt和swing
swing里面的控件比較豐富, 且功能強(qiáng)大 .
三: 效果圖片
四: 完整的參考代碼
import?java.awt.*;
import?java.awt.event.*;
import?java.io.*;
import?javax.swing.*;
//定義一個(gè)主窗口類
public?class?MainFrame?extends?JFrame?{
public?static?final?String?FILE_PATH?=?"c:\\print.txt";//常量,用于指定信息的保存路徑
//定義主要的組件
private?final?JTextField?jtf1,jtf2,jtf3;
private?final?JCheckBox?jcb1,jcb2,jcb3;
private?final?JRadioButton?jrb1,jrb2;
public?MainFrame()?{
setTitle("信息提交窗口");//設(shè)置窗口標(biāo)題
setSize(350,?320);//設(shè)置窗口大小
setLocationRelativeTo(null);//讓窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//當(dāng)主窗口關(guān)閉的時(shí)候退出jvm虛擬機(jī)
JPanel?jp?=?new?JPanel(new?GridLayout(5,?1,?2,?1));//定義主顯示面板,布局為表格布局5行1列,水平間距2,垂直間距1
JPanel?jp1?=?new?JPanel();//第一行的組件面板
JLabel?jl1?=?new?JLabel("姓名");
jtf1?=?new?JTextField(10);
jp1.add(jl1);
jp1.add(jtf1);
JPanel?jp2?=?new?JPanel();//第二行的組件面板
JLabel?jl2?=?new?JLabel("學(xué)號(hào)");
jtf2?=?new?JTextField(10);
jp2.add(jl2);
jp2.add(jtf2);
JPanel?jp3?=?new?JPanel();//第三行的組件面板
JLabel?jl3?=?new?JLabel("性別");
jrb1?=?new?JRadioButton("男");
jrb2?=?new?JRadioButton("女");
jrb1.setSelected(true);
ButtonGroup?bgs?=?new?ButtonGroup();
bgs.add(jrb1);
bgs.add(jrb2);
jp3.add(jl3);
jp3.add(jrb1);
jp3.add(jrb2);
JPanel?jp4?=?new?JPanel();//第四行的組件面板
JLabel?jl4?=?new?JLabel("選擇愛(ài)好");
jcb1?=?new?JCheckBox("游泳");
jcb2?=?new?JCheckBox("籃球");
jcb3?=?new?JCheckBox("跑步");
jp4.add(jl4);
jp4.add(jcb1);
jp4.add(jcb2);
jp4.add(jcb3);
JPanel?jp5?=?new?JPanel();//第五行的組件面板
JLabel?jl5?=?new?JLabel("自我介紹");
jtf3?=?new?JTextField(22);
jp5.add(jl5);
jp5.add(jtf3);
//添加到主顯示面板
jp.add(jp1);
jp.add(jp2);
jp.add(jp3);
jp.add(jp4);
jp.add(jp5);
jp.setBorder(BorderFactory.createTitledBorder("填寫(xiě)資料"));//設(shè)置主顯示面板的邊框
JButton?jb?=?new?JButton("跳轉(zhuǎn)到打印頁(yè)");
jb.addActionListener(new?ActionListener()?{//按鈕事件
public?void?actionPerformed(ActionEvent?e)?{//獲取組件的信息
StringBuilder?sb?=?new?StringBuilder();//用于連接信息
String?name?=?jtf1.getText();
sb.append("姓名:"?+?name?+?"\r\n");
String?num?=?jtf2.getText();
sb.append("學(xué)號(hào):"?+?num?+?"\r\n");
String?sex;
if?(jrb1.isSelected())?{
sex?=?"男";
}?else?{
sex?=?"女";
}
sb.append("性別:"?+?sex?+?"\r\n");
String?aihao?=?"";
if?(jcb1.isSelected())?{
aihao?+=?jcb1.getText();
}
if?(jcb2.isSelected())?{
aihao?+=?"?"?+?jcb2.getText();
}
if?(jcb3.isSelected())?{
aihao?+=?"?"?+?jcb3.getText();
}
sb.append("愛(ài)好:"?+?aihao?+?"\r\n");
String?jieshao?=?jtf3.getText();
sb.append("自我介紹:"?+?jieshao?+?"\r\n");
new?PrintDailog(sb.toString(),?FILE_PATH).setVisible(true);//打開(kāi)打印頁(yè)面,并設(shè)置為可見(jiàn)
}
});
getContentPane().add(new?JLabel("信息填寫(xiě)",JLabel.CENTER),BorderLayout.NORTH);
getContentPane().add(jp);
getContentPane().add(jb,?BorderLayout.SOUTH);
}
public?static?void?main(String[]?args)?{
new?MainFrame().setVisible(true);
}
}
//定義一個(gè)對(duì)話框窗口類
class?PrintDailog?extends?JDialog?{
String?info;//用于接受信息
String?filePath;//文檔的路徑
private?final?JLabel?jl2;
public?PrintDailog(String?info,?final?String?filePath)?{
this.info?=?info;
this.filePath?=?filePath;
setModal(true);//模態(tài)為真,如果不關(guān)閉這個(gè)對(duì)話框,那么無(wú)法點(diǎn)擊其他窗口
setTitle("信息打印頁(yè)");//設(shè)置打印窗口的標(biāo)題
setSize(300,?320);//設(shè)置打印窗口的大小
setLocationRelativeTo(null);//設(shè)置打印窗口居中
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//當(dāng)點(diǎn)擊關(guān)閉按鈕時(shí),該窗口銷毀
JLabel?jl1?=?new?JLabel("信息打印顯示",?JLabel.CENTER);
JTextArea?jta?=?new?JTextArea(info);
jta.setEditable(false);//不可編輯
jta.setLineWrap(true);//自動(dòng)換行
JScrollPane?jsp?=?new?JScrollPane(jta);
jsp.setBorder(BorderFactory.createTitledBorder("信息"));
JButton?jb1?=?new?JButton("打印");
JPanel?jp?=?new?JPanel(new?GridLayout(2,?1));
JPanel?jp1?=?new?JPanel();
jp1.add(jb1);
JPanel?jp2?=?new?JPanel();
jl2?=?new?JLabel();
jp2.add(jl2);
jp.add(jp1);
jp.add(jp2);
add(jl1,?BorderLayout.NORTH);
add(jsp);
add(jp,?BorderLayout.SOUTH);
jb1.addActionListener(new?ActionListener()?{//點(diǎn)擊打印的按鈕的事件
public?void?actionPerformed(ActionEvent?e)?{
saveToFile();//信息打印到了文檔
jl2.setText("信息已經(jīng)打印到"?+?filePath);//顯示出來(lái)
jl2.setForeground(Color.RED);//為了醒目設(shè)置顏色為紅色
}
});
}
private?void?saveToFile()?{//該方法用于保存信息到文檔
try?{
BufferedWriter?bw?=?new?BufferedWriter(new?OutputStreamWriter(new?FileOutputStream(filePath),?"UTF-8"));
bw.write(info);
bw.close();
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
五: 拓展
java 制作圖像界面比較簡(jiǎn)單, ?只需要熟練的掌握三大布局(流布局 表格布局 邊界布局)和常用組件 ?, 就能制作出比較復(fù)雜的界面 . ?所以理清業(yè)務(wù)邏輯, ?才是重點(diǎn)
如何通過(guò)JAVA代碼調(diào)用網(wǎng)絡(luò)打印機(jī)使其打印接收到的文件
用java實(shí)現(xiàn)本地打?。簀ava.awt中提供了一些打印的API,要實(shí)現(xiàn)打印,首先要獲得打印對(duì)象,然后繼承Printable實(shí)現(xiàn)接口方法print,以便打印機(jī)進(jìn)行打印,最后用用Graphics2D直接輸出直接輸出。下面代碼實(shí)現(xiàn)了簡(jiǎn)單的打印功能:
jsp頁(yè)面如何用代碼(java語(yǔ)言)實(shí)現(xiàn)打印功能?
如一樓所說(shuō),你的jsp源文件的java代碼是在服務(wù)器上執(zhí)行的,客戶端接收到的只有html
用JavaScript打印吧
input
id="btnPrint"
type="button"
value="打印"
onclick="javascript:window.print();"
/
可以用樣式控制,你想讓那塊打印就打印啊,樣式如下:
style
type="text/css"
media=print
.noprint{display
:
none
}
/style
然后使用樣式就可以:
p
class="noprint"不需要打印的地方/p
上一篇:家電控制系統(tǒng)JAVA代碼 家電智能化控制系統(tǒng)
欄 目:Java編程
下一篇:沒(méi)有了
本文標(biāo)題:java代碼打印信息嗎 java打印的代碼
本文地址:http://mengdiqiu.com.cn/a1/Javabiancheng/17357.html
您可能感興趣的文章
- 04-10家電控制系統(tǒng)JAVA代碼 家電智能化控制系統(tǒng)
- 04-10五子棋游戲的java代碼 基于java的五子棋游戲的設(shè)計(jì)代碼
- 04-10矩陣乘法java代碼 java編寫(xiě)矩陣乘法
- 04-10找質(zhì)數(shù)java實(shí)現(xiàn)代碼 找質(zhì)數(shù)java實(shí)現(xiàn)代碼怎么做
- 04-10前端寫(xiě)java代碼 java寫(xiě)前端還是后端
- 04-10java改變字體代碼 java怎么改變字體
- 04-10java學(xué)習(xí)代碼庫(kù) java代碼教學(xué)
- 04-10b2bjava開(kāi)源代碼的簡(jiǎn)單介紹
- 04-09java視頻下載代碼解釋 java下載網(wǎng)頁(yè)視頻
- 04-09簡(jiǎn)易教務(wù)系統(tǒng)java代碼 簡(jiǎn)易教務(wù)系統(tǒng)java代碼大全


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 7什么是 WSH(腳本宿主)的詳細(xì)解釋
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-10java代碼打印信息嗎 java打印的代碼
- 04-10家電控制系統(tǒng)JAVA代碼 家電智能化控制
- 04-10五子棋游戲的java代碼 基于java的五子
- 04-10矩陣乘法java代碼 java編寫(xiě)矩陣乘法
- 04-10找質(zhì)數(shù)java實(shí)現(xiàn)代碼 找質(zhì)數(shù)java實(shí)現(xiàn)代
- 04-10前端寫(xiě)java代碼 java寫(xiě)前端還是后端
- 04-10java改變字體代碼 java怎么改變字體
- 04-10java學(xué)習(xí)代碼庫(kù) java代碼教學(xué)
- 04-10b2bjava開(kāi)源代碼的簡(jiǎn)單介紹
- 04-09java視頻下載代碼解釋 java下載網(wǎng)頁(yè)視
隨機(jī)閱讀
- 08-05dedecms后臺(tái)功能之全局標(biāo)記測(cè)試介紹
- 01-10C/C++仿華容道小游戲
- 01-10Android自定義View仿QQ運(yùn)動(dòng)步數(shù)效果
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10C#在PDF中繪制不同風(fēng)格類型的文本方法
- 01-10C#自定義控件VS用戶控件
- 01-10JS實(shí)現(xiàn)音樂(lè)導(dǎo)航特效
- 01-10詳解C#中SqlParameter的作用與用法
- 01-11如何計(jì)算出當(dāng)前日期屬于定義時(shí)間段
- 01-10C#如何給枚舉類型增加一個(gè)描述特性詳