導航:首頁 > 編程語言 > java列印數據

java列印數據

發布時間:2024-09-19 16:51:26

java怎樣輸出不換行

System.out.println()這個是在輸出內容之後換行,而 System.out.print()輸出內容之後不換行。只是一個 ln 的差距。

public class ArrayDemo {

public static void main(String[] args) {

int[] arr = { 11, 22, 33, 44, 55 };

System.out.print("[");

for (int x = 0; x < arr.length; x++) {

if (x == arr.length - 2) {

System.out.println(arr[x] + "]");

當x==0時:執行else中的語句,結果是:[11]

當x==1時:執行else中的語句,結果是:[11 22]

當x==2時:執行else中的語句,結果是:[11 22 33]

當x==3時:執行 if 中的語句,結果是:[11 22 33 44],此處執行完就會換行

當x==4時:執行else中的語句,結果是:[11 22 33 44]結束。

(1)java列印數據擴展閱讀:

當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類,通過調用類(這些類實現了Java API)中的方法來訪問資源系統;

把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用。

Ⅱ java列印出不同圖形用抽象數據類型嗎

Java可以使用抽象數據類型(ADT)來列印出不同的圖形。抽象數據類型是一種數據結構,它將數據的邏輯結構和操作方法進行了封裝,使得數據的使用者不需要關心具體的實現細節。

在這個問題中,我們可以定義一個圖形的抽象數據類型,並提供一系列的操作方法來實現列印不同圖形的功能。例如,可以定義一個介面或抽象類來表示圖形,然後為每種圖形實現具體的類,並在每個類中實現列印圖形的方法。

以下是一個簡單的示例,演示如何使用抽象數據類型列印三角形和矩形:

```
// 圖形介面
interface Shape {
void draw();
}

// 三角形類實現圖形介面
class Triangle implements Shape {
@Override
public void draw() {
System.out.println("列印三角形");
// 具體的列印三角形的代碼
}
}

// 矩形類實現圖形介面
class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("列印矩形");
// 具體的列印矩形的代碼
}
}

// 主程序
public class Main {
public static void main(String[] args) {
Shape triangle = new Triangle();
Shape rectangle = new Rectangle();

triangle.draw(); // 列印三角形
rectangle.draw(); // 列印矩形
}
}
```

通過使用抽象數據類型,我們可以將不同圖形的實現細節封裝起來,並通過調用相應的方法來列印不同的圖形。這樣可以使程序更加模塊化、易於維護和拓展。

Ⅲ java把一個byte類型的數據的每一位都輸出怎麼做

//方法一
publicclassTest{
publicstaticvoidmain(String[]args){
bytea=123;
char[]arr=String.valueOf(a).toCharArray();
for(inti=0;i<arr.length;i++){
System.out.print(arr[i]+"");
}
}
}

//方法二
publicclassTest{

publicstaticvoidmain(String[]args){
bytea=123;
Stringstr=String.valueOf(a);
for(inti=0;i<str.length();i++){
System.out.print(str.substring(i,(i+1))+"");
}
}
}

//方法三
publicclassTest{

publicstaticvoidmain(String[]args){
bytea=123;
Byteb=newByte(a);
System.out.println(b.byteValue());
}
}

Ⅳ JAVA裡面有沒有組件可以直接連接列印機列印數據


JasperReports與iReport 簡介
簡介 JasperReports是一款開源的報表列印組件,是開源代碼組織sf.net中的一個java報表列印工程,可以以PDF, HTML或XML等多種形式產生報表,支持分頁列印,並且可以製作各種類型的圖表。Jasperreport是按照一個預定義的xml文檔來組織報表的數據,這些數據來源多樣,包括關系資料庫(通過配置JDBC連接)、java容器對象(collection和arrays)。要完成報表的填充,必須先完成用於報表的xml文件,其過程是先產生報表設計對象,再序列化該對象,存儲在磁碟或者網路,用於產生特定應用的表格數據。事實上,表單的設計過程就是用定義於xml文件中的java表達式來表現報表的設計。編輯過程中會有各種保證數據一致性的驗證,最終會產生相關數據文檔或填充數據的准備。 iReport也是開源組織sf.net中的一款免費軟體,其主要作用是以可視化的方式升級生成JasperReport所使用的報表格式文件,因為JasperReport本身沒有提供很好的可視化報表設計工具,iReport正好彌補了這個缺陷,因此我們常常將這兩個工具結合起來使用。 JasperReports可以在這個地址得到: http://jasperreports.sourceforge.net/ iReport 可以在這個地址得到: http://ireport.sourceforge.net/ iReport的使用 iReport的安裝 安裝iReport首先需要在本機安裝JDK,並對環境進行配置,最新版的JDK可以從http://www.sun.com 處下載並安裝,然後配置windows環境變數,在path後面加入「;java的安裝目錄」,新建環境變數 JAVA_HOME :「java的安裝目錄」 CLASSPATH:「java的安裝目錄\bin」 如果已經安裝過JDK,則可以跳過這些步驟。然後從iReport的站點下載最新的版本的iReport,解壓iReport在任意目錄,解壓後的文件裡面有一個iReport.bat,通過雙擊,過大約30秒鍾如果可以彈出iReport的主窗體即表明你的系統已經可以運行iReport了,如果不能彈出主窗體,一般是因為JDK沒有正確被安裝。在iReport中配置資料庫使用iReport的第一步是配置資料庫連接,選擇菜單「資料來源/連接資料來源」,打開如下的對話框, 點擊「New」,打開如下對話框,可以創建數據連接, 我們以創建JDBC數據源為例,在「Type of connection / datasource」列表中,選擇「Database.JDBC.connection」,在「Name」中,為創建的新的連接取一個需要的名字,在JDBC Driver中,選擇一個驅動,我們以Oracle為例,選擇「oracle.jdbc.driver.OracleDriver」,在JDBC URL中輸入JDBC連接,例如:「jdbc:oracle:thin:@localhost:1521:TANGO」,同時請在Username和Password中輸入連接資料庫的用戶和密碼。注意一點OracleJDBC的包必須在環境變數的CLASS_PATH中配置。全都創建好後,點擊「Test」可以進行對資料庫連接的測試。建立連接後,就可以對數據表進行查詢,選擇菜單「資料來源/報表查詢」,打開如下對話框: 在「Report SQL query」頁中,可以輸入任意的sql數據來得到數據,當輸完完整的sql語句後,iReport自動將所有欄位列表列出,這些欄位就是可以在報表製作過程中可以使用的變數。另外需要注意的是:當我們創建了多個數據源的時候,需要設定一個當前的數據源,選擇菜單:「設定/設置當前數據源」,打開如下對話框: 可以在所有建立的數據源中設置當前使用的數據源。從java容器獲得數據通過JDBC獲得數據非常方便,但我們通常不會在設計期就確定完整的sql語句,通常我們在運行期都需要構造一些動態的sql,當然,我們可以通過編程的方式來構造sql並傳遞給iReport,但是復雜的sql語句不便於維護,也容易出錯。JasperReports允許從java容器中獲得數據,首先告訴iReport,java容器類的路徑,選擇菜單:「工具/classpath」,如圖: 設置完路徑後,再次選擇菜單「資料來源/報表查詢」,到「JavaBean Datasource」頁,在Class Name中輸入容器類的全路徑,如下圖: 點擊「Read javabeans attributes」,容器中的欄位就全部被讀取了出來。至此為止,我們已經可以開始製作報表了。開始使用iReport iReport的開發界面和我們熟悉的delphi著名插件quickreport比較相似,整個頁面由若干個band組成,每個band實現不同的顯示方式。界面如下: 新建報表單擊工具欄的第一個按鈕「New Report」,或者通過菜單「報表/新增」進入創建報表菜單,如下圖: 在報表名稱欄內給創建的報表取個名字,然後是定義紙張的大小,iReport提供了多種預設尺寸,當然也可以選擇自定義的頁面尺寸,並提供兩種定位方式,也即橫向和豎向。在對話框的下半頁,還可以設置頁邊距,列等等。當都設置完成,點擊「OK」,完成新建動作。報表結構創建了一個新的報表後,我們來看看報表的結構。一個報表的結構大致是幾個部分:title、pageHeader、columnHeader、detial、columnFooter、pageFooter、summary、groupHeader、groupfooter。 Title:每個報表一般會有一個名字,比如×××銷售報表,title就是擱置這個名稱的最好地方了,當然你也可以根據需要擱置在合適的地方。 pageHeader:報表的一些公共要素,比如頁碼、創建時間、創建人等信息放置在這里是比較好的選擇。在每頁頭都會列印一遍 columnHeader:這里是放置列的名稱,記住不是列數據。 Detial:放置需要循環的數據,比如銷售記錄數據。 columnFooter:放置列級別的統計計算值或是列的說明。 pageFooter:放置頁級別的統計值或是頁的說明。 Summary:可能需要對幾頁(你的報表可能有幾個頁組成)的統計值。比如50個銷售記錄共佔用了3頁,那麼放置這些統計記錄的統計值最好的地方就是summary。 groupHeader:每個表的內容可能需要根據某個屬性進行劃分顯示內容和計算內容,比如希望以月份為單位每組分開顯示銷售記錄,那麼就可以定義一個組(組的定義參考後文),groupHeader就是放置組說明或是組標志最好的地方。 Groupfooter:放置組的統計或是說明。報表的動態對象變數、參數、欄位在使用iReport的過程中會碰到很多與變數(Variables)、參數(Parameters)、欄位(Fields)這些有關的內容,所以我們還是要先介紹這些對象的使用和意義:欄位(Fields):來自資料庫,或是java容器對象。這些內容是報表顯示的主體內容,語法為$F{ filedsName }。參數(Parameters):這是你的應用需要提供給報表的入口,比如你希望在報表被解釋的時候提供Where語句的條件值,那麼就可以使用參數(Parameters)。語法為$P{ parameterName },可以給報表提供多個參數,通過一個HashMap傳入。使用參數前,參數必須在iReport中進行配置,如,我們需要在列印時得到列印操作人,我們創建一個參數列印人:printOperator。選擇菜單「預覽——報表參數」,打開如下對話框: 在參數頁面,點擊「新增」按鈕,繼續打開如下新增參數對話框: 在「Parameter name」內,填入參數名稱:「printOperator」,在「Paramenter class type」選擇框中,選擇參數的類型,我們這里選擇「java.lang.String」,在「Default value expression」中填入當傳入的值缺失時的預設值,因為iReport是純java語言開發,因此支持任何java語句。在「Paramenter description」中可以對該參數進行一些描述。點擊「OK」完成參數的創建。下面給出簡單的程序調用實例: HashMap map = new HashMap(); Map.put(「printOperator」,」陳寧」); JasperFillManager.fillReport(jasperReport,map,ds); 變數(Variables):這是報表中一些邏輯運算的表現,比如統計值(求和,最大值,最小值等等)。語法為$V{ variablesName },例如我們要對定單金額進行求和,假設定單金額的資料庫欄位為amt,我們現在創建變數名為totalAmt的對定單金額進行匯總的變數,點擊菜單「預覽/報表變數」,打開如下對話框: 我們看到iReport已經為我們預先定義了五個有用的變數,供我們使用,具體含義如下: • $V{REPORT_COUNT}: 報表處理的記錄筆數 • $V{PAGE_NUMBER}: 列印時的頁碼 • $V{PAGE_COUNT}: 本頁處理的記錄筆數 • $V{COLUMN_NUMBER}: 報表的直欄數目 • $V{COLUMN_COUNT}: 本欄的處理筆數 • $V{群組名_COUNT}: 群組Band的處理筆數,建立群組時會自動產生的變數其中最後一個變數是根據分組情況自動生成的。我們現在新增一個自己定義的變數,點擊「新增」,打開新增變數對話框: 在「Variable name」中,輸入變數名:「totalAmt」,在「variable class type」中選擇變數的類型「java.math.BigDecimal」,在「Calculation type」中選擇計算的類型,這里是求和「Sum」,在「Variable expression」中輸入變數的表達式,我們這里是取資料庫中的欄位amt,所以寫成「$F{amt}」,請注意。當我們正確的配置了數據來源後,當我們輸入的表達式正確,那麼顯示的顏色是綠色的的,當不能正確寫對表達式的時候,是如圖所示的藍色。然後我們在「initial value expression」中輸入初始化的值,這里同樣輸入java語句:「new java.math.BigDecimal(0)」。點擊「OK」,完成參數的設置。在報表頁面放置元素 iReport的工具欄提供了豐富的元素,從簡單的內容到包括圖形,分組報表都支持。我們主要介紹兩類,一類為靜態文本,一類為動態文本。這兩個工具按鈕如下: 點擊「T」的工具按鈕,打開添加「靜態文本」的對話框。 他的用法比較簡單,有一些計算機使用經驗的人都能看懂,就不在這里介紹了。這里只說一點:要顯示的內容是在Static Text頁面中輸入,在Print when expression中,可以接受返回類型為Boolean的java表達式,當返回Boolean.TRUE,才會列印該靜態文本,當返回為Boolean.FALSE則不列印,在本文後面會介紹利用這個特性列印黑白交替的行顯示效果。我們再看看動態文本,點擊「F」,打開如下對話框: 動態與靜態文本大致類似,動態文本在「Text Field」中接受表達式,在「Textfield expression」中,輸入動態表達式「$F{s_data_1}」,如圖,綠色代表輸入正確。在Pattern中,還可以輸入數據顯示的格式。製作報表有了上面的基本知識,我們就可以開始製作報表了。我在製作報表中,考慮了以下的思路。首先,取數據通過java容器,而不是直接連接資料庫,這是因為我們製作的報表通常都比較復雜,很難直接通過一個簡單的sql語句來實現,就算我們可以寫一個復雜的select語句來實現一個報表的查詢,但是對於以後的維護和排錯也是相當困難的,因此不建議這樣的做法。從另一個角度考慮,報表的很多查詢條件是根據用戶的輸入來動態的創建的,我們在後台對數據進行整理和加工都會使程序的調試和實現變得簡單。我創建了數據容器類:ReportBaseObject,非常簡單,部分代碼如下: public class ReportBaseObject { private String s_data_1; private String s_data_2; private String s_data_3; …… private String s_data_20; private BigDecimal b_data_1; private BigDecimal b_data_2; private BigDecimal b_data_3; …… private BigDecimal b_data_20; private Date d_data_1; private Date d_data_2; private Date d_data_3; …… private Date d_data_10; private Integer i_data_1; …… private Integer i_data_10; public BigDecimal getB_data_1() { return b_data_1; } public void setB_data_1(BigDecimal b_data_1) { this.b_data_1 = b_data_1; } …… public Date getD_data_1() { return d_data_1; } public void setD_data_1(Date d_data_1) { this.d_data_1 = d_data_1; } …… public Integer getI_data_1() { return i_data_1; } public void setI_data_1(Integer i_data_1) { this.i_data_1 = i_data_1; } …… public String getS_data_1() { return s_data_1; } public void setS_data_1(String s_data_1) { this.s_data_1 = s_data_1; } …… } 這是一個通用的數據容器,容器中定義了20個字元類型的欄位,20個數字類型的欄位,10個日期和10個整型,這個容器對於任何報表都適合,這樣做是基於以下考慮。我把報表製作分為兩個部分,第一部分是用iReport製作報表界面,第二部分在後台根據用戶傳入條件取得報表需要的數據。而第一部分可以由項目人員在現場製作後後期進行修改,而第二部分由開發人員完成,因此要求這兩部分的工作可以分離,通過提供一個通用對象,我們可以實現這一目的。工程人員在現場和客戶洽談需求,並在沒有數據的情況下,開始製作報表界面,他們所要做的就是用一張表格列出他們需要的數據的含義:如: baseObject 對應欄位 說明 報表編號:01_001 S_data_1 單號 S_data_2 單據類型 D_data_1 要貨日期 D_data_2 批准時間 B_data_1 應付金額 B_data_2 已付金額 在與用戶確認了界面後,工程人員將表格傳遞給開發人員,開發人員就根據表格所標注的欄位意義給容器填寫數據。以下是我畫的報表截圖: 顯示不同的背景如下圖所示,我們希望列印出灰白相間的行效果,可以利用上文提到的「print when expresssion」屬性來實現,具體做法有兩種: 在同一列上放相同欄位的TextField,一個不設背景(預設為白色),另一個設背景(淡黃色) 白色背景的Print when expression輸入new Boolean((($V{PAGE_COUNT}.intValue()) % 2)==0) 灰色背景的Print when expression輸入new Boolean((($V{PAGE_COUNT}.intValue()) % 2)==1) 另一個方法是先在Detail Band上拉一個矩形,設其背景為淡黃色,設其Print when expression為new Boolean((($V{PAGE_COUNT}.intValue()) % 2)==1),意即奇數列時才要印出這個淡黃底色的矩形。再設其前景為白色,使矩形邊界的黑框消失。在矩形上放需要的Text Field,並將其Transparent打勾,意即此Text field是透明的。

調用IE內置列印組件完成web列印方案及常式
重點:
<OBJECT id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 width=0 VIEWASTEXT>
</OBJECT>
<input type=button value=列印 onclick="document.all.WebBrowser.ExecWB(6,1)" class="NOPRINT">
<input type=button value=直接列印 onclick="document.all.WebBrowser.ExecWB(6,6)" class="NOPRINT">
<input type=button value=頁面設置 onclick="document.all.WebBrowser.ExecWB(8,1)" class="NOPRINT">
<input type=button value=列印預覽 onclick="document.all.WebBrowser.ExecWB(7,1)" class="NOPRINT">

注意:
1、CSS對列印的控制:
<!--media=print 這個屬性可以在列印時有效-->
<style media=print>
.Noprint{display:none;}
.PageNext{page-break-after: always;}
</style>

Noprint樣式可以使頁面上的列印按鈕等不出現在列印頁面上,這一點非常重要,因為它可以用最少的代碼完成最需要的功能

PageNext樣式可以設置分頁,在需要分頁的地方<div class="PageNext"></div>就OK了,呵呵

2、表格線粗細的設置,更是通過樣式表:

<style>
.tdp
{
border-bottom: 1 solid #000000;
border-left: 1 solid #000000;
border-right: 0 solid #ffffff;
border-top: 0 solid #ffffff;
}
.tabp
{
border-color: #000000;

border-collapse:collapse;
}
</style>

或者:

<style>
.TdCs1 {
border:solid windowtext 1.0pt;
}
.TdCs2 {
border:solid windowtext 1.0pt; border-left:none;
}
.TdCs3 {
border-top:none;
border-left:solid windowtext 1.0pt;
border-bottom:solid windowtext 1.0pt;
border-right:solid windowtext 1.0pt;
}
.TdCs4 {
border-top:none;
border-left:none;
border-bottom:solid windowtext 1.0pt;
border-right:solid windowtext 1.0pt;
}
.underline {
border-top-style: none;
border-right-style: none;
border-bottom-style: solid;
border-left-style: none;
border-bottom-color: #000000;
}
</style>

很多種列印的方式了,你走走腦子上網艘艘,沒有找不到的
給你個列印excel例子,跟上面的不同
下載一個叫jcom的lib,鬼子做的
把包里的jcom.jar放到classpath,把jcom.dll放到java_home/bin下面
public class JCOM {

public boolean print(String fname) {
ReleaseManager rm = new ReleaseManager();
try {
ExcelApplication excel = new ExcelApplication(rm);

ExcelWorkbooks xlBooks = excel.Workbooks();
ExcelWorkbook xlBook = xlBooks.Open(fname);
ExcelWorksheet xlSheet = excel.ActiveSheet();

xlSheet.PrintOut();

xlBook.Close(false, null, false);
excel.Quit();
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
rm.release();
}
return true;
}

public static void main(String[] args) {
JCOM test = new JCOM();

try {
test.print("c:\\test.xls");
} catch (Exception e) {
e.printStackTrace();
}
}
}

閱讀全文

與java列印數據相關的資料

熱點內容
qq文件夾遷移不了 瀏覽:15
液體粘滯系數測定不確定度演算法 瀏覽:332
輕棧源碼 瀏覽:425
把圖片壓縮到500k 瀏覽:34
命令你自己 瀏覽:368
51單片機c語言pdf下載 瀏覽:176
androidactivity堆棧 瀏覽:821
mac執行命令 瀏覽:897
圖片壓縮工具注冊碼 瀏覽:495
給文件上鎖加密還能刪除不 瀏覽:811
增長率超過10簡便演算法 瀏覽:292
安卓什麼桌面組件好用 瀏覽:467
求知課堂python2020 瀏覽:262
kafka刪除topic命令 瀏覽:760
phpsql單引號 瀏覽:86
英雄聯盟壓縮壁紙 瀏覽:452
辦公app需要什麼伺服器 瀏覽:628
安卓伺服器怎麼獲得 瀏覽:808
空調壓縮機冷媒的作用 瀏覽:781
淘寶app是以什麼為利的 瀏覽:657