導航:首頁 > 編程語言 > java顯示結果

java顯示結果

發布時間:2022-04-25 02:30:16

① 用java如何將查詢的結果在table中顯示

利用Java開發資料庫應用系統時,經常需要在用戶界面上顯示查詢結果。由於SUN公司提供的JDK1.x開發工具包不是可視化的集成開發環境(IDE),不能象Delphi、VB那樣方便地把查詢結果在DBGrid等表格中顯示出來。因此,只能靠自己編寫代碼來實現。
在實際應用中,我們可以利用Vector、JTable、AbstractTableModel等三個類較好地解決這一問題。以下,詳細介紹一下實現方法。

· 一、 類Vector、類JTable及類AbstractTableModel簡介:

1、 類Vector:
類Vector是Java的歷史集合類,隸屬於java.util包。它包裝了異構鏈表和數組雜合體,具有以下兩個特點:

* 向量是異構的,不要求每個元素的類型相同,向量中可以混合多種對象類型;
* 向量是數組雜合體,因為它們可以在增加元素時動態增大。

其異構性正好符合資料庫記錄中屬性類型不一的特點,而其動態性也正好符合資料庫查詢時,結果集記錄個數不定的特點。

類Vector定義如下:
public class Vector extends AbstractList
implements List , Cloneable , Serializable{…}

實現了向量成員的查找、新增、刪除等方法。如:add(Object obj)可方便地加入一個對象;get(int index)可方便地得到向量中的一個對象;remove(Object obj)。則可方便地刪除向量中一個對象。

· 2、 類JTable:

JTable組件是Swing組件中比較復雜的小件,隸屬於javax.swing包,它能以二維表的形式顯示數據。類JTable定義如下:
public class JTable extends JComponent
implements TableModelListener, Scrollable, TableColumnModelListener,
ListSelectionListener, CellEditorListener, Accessible{…}
類JTable在顯示數據時具有以下特點:

* 可定製性:可以定製數據的顯示方式和編輯狀態;
* 異構性:可以顯示不同類型的數據對象,甚至包括顏色、圖標等復雜對象;
* 簡便性:可以以預設方式輕松地建立起一個二維表。

其可定製性可滿足不同用戶和場合的要求,異構性也正好符合資料庫訪問結果集中屬性類型不一的特點。類JTable提供了極為豐富的二維表格操作方法,如設置編

輯狀態、顯示方式、選擇行列等,在此不一一贅述。
使用類JTable顯示數據之前,必須根據情況生成定製模型、單元繪制器或單元編輯器。類AbstractListModel用來定製用戶自己的數據模型,這個類在後面要介紹。

TableCellRenderer介面用來定製單元繪制器,TableCellEditor介面用來定製單元編輯器,這兩個介面主要用於顏色對象的處理上,在示例中沒有用到,不做過多說明。

· 3、 類AbstractTableModel:

類AbstractTableModel是一個抽象類,沒有完全實現,不能實例化,使用時必須在程序中實現方法。它隸屬於javax.swing.table 。類定義如下:
public abstract class AbstractTableModel extends Object
implements TableModel, Serializable{…}

類AbstractTableModel提供了TableModel介面中絕大多數方法的預設實現。TableModel介面定義了JTable 的基礎數據結構。用戶要生成自己的數據模型,本來可以

通過實現TableModel介面中所有方法來滿足要求,但管理聽眾表的功能對於所有數據模型是共同的,所以在javax.swing.table中又定義了類AbstractTableModel來

處理這個工作。它既管理聽眾表,又為生成TableModelEvents事件並委託給聽眾提供了便利。
要想生成一個具體的TableModel作為AbstractTableMode的子類,至少必須實現下面三個方法:

public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);

至此,我們可以建立一個簡單二維表(5×5),實現方法如下:
TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() { return 5; }
public int getRowCount() { return 5;}
public Object getValueAt(int row, int col) { return new Integer(row*col); }
};
JTable table = new JTable(dataModel);
JScrollPane scrollpane = new JScrollPane(table);
· 二、 資料庫及其連接方法簡介:

示例採用Sybase資料庫系統,資料庫存放在資料庫伺服器中。路徑為:D:/WORKER,資料庫名為:worker.dbf。具有以下欄位:

欄位名
類型
Wno(職工號)
VARCHAR
Wname(職工名)
VARCHAR
Sex(性別)
VARCHAR
Birthday(出生日期)
DATE
Wage(工資)
FLOAT

要連接此資料庫,需使用java.sql包中的類DriverManager。此類是用於管理JDBC驅動程序的實用程序類。它提供了通過驅動程序取得連接、注冊,撤消驅動程序, 設置登記和資料庫訪問登錄超時等方法。具體連接方法如下:

第一步:定位、裝入和鏈接SybDriver類;
driver="com.sybase.jdbc.SybDriver";
SybDriver sybdriver=(SybDriver)Class.forName(driver).newInstance();
第二步:注冊SybDriver類;
DriverManager.registerDriver(sybdriver);
第三步:取得連接(SybConnection)對象引用。
user="sa";
password="";
url="jdbc:sybase:Tds:202.117.203.114:5000/WORKER";
SybConnection connection=(SybConnection)DriverManager.getConnection
(url,user,password);

建立完連接後,即可通過Statement介面進行資料庫的查詢與更改。
· 三、 實現方法:

限於篇幅,在此只給出核心代碼,包引入、界面處理、變數定義等部分不再介紹。
第一步:對象聲明。
AbstractTableModel tm;//聲明一個類AbstractTableModel對象
JTable jg_table;//聲明一個類JTable對象
Vector vect;//聲明一個向量對象
JScrollPane jsp;//聲明一個滾動杠對象
String title[]={"職工號","職工名","性別","出生日期","工資"};
//二維表列名

第二步:定製表格。

1、實現抽象類AbstractTableModel對象tm中的方法:
vect=new Vector();//實例化向量
tm=new AbstractTableModel(){
public int getColumnCount(){
return title.length;}//取得表格列數
public int getRowCount(){
return vect.size();}//取得表格行數
public Object getValueAt(int row,int column){
if(!vect.isEmpty())
return
((Vector)vect.elementAt(row)).elementAt(column);
else
return null;}//取得單元格中的屬性值
public String getColumnName(int column){
return title[column];}//設置表格列名
public void setValueAt(Object value,int row,int column){}
//數據模型不可編輯,該方法設置為空
public Class getColumnClass(int c){
return getValueAt(0,c).getClass();
}//取得列所屬對象類
public boolean isCellEditable(int row,int column){
return false;}//設置單元格不可編輯,為預設實現
};

2、定製表格:

jg_table=new JTable(tm);//生成自己的數據模型
jg_table.setToolTipText("顯示全部查詢結果");//設置幫助提示
jg_table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//設置表格調整尺寸模式
jg_table.setCellSelectionEnabled(false);//設置單元格選擇方式
jg_table.setShowVerticalLines(true);//設置是否顯示單元格間的分割線
jg_table.setShowHorizontalLines(true);
jsp=new JScrollPane(jg_table);//給表格加上滾動杠

第三步:顯示查詢結果。

1、 連接資料庫:第二部分已給出。
2、 資料庫查詢:
Statement stmt=connection.createStatement();
ResultSet rs=stmt.executeQuery("select * from worker");
3、 顯示查詢結果:
vect.removeAllElements();//初始化向量對象
tm.fireTableStructureChanged();//更新表格內容
while(rs.next()){
Vector rec_vector=new Vector();
//從結果集中取數據放入向量rec_vector中
rec_vector.addElement(rs.getString(1));
rec_vector.addElement(rs.getString(2));
rec_vector.addElement(rs.getString(3));
rec_vector.addElement(rs.getDate(4));
rec_vector.addElement(new Float(rs.getFloat(5)));
vect.addElement(rec_vector);//向量rec_vector加入向量vect中
}
tm.fireTableStructureChanged();//更新表格,顯示向量vect的內容。

② java窗口程序顯示運行結果

這是最簡單的顯示**的面板方法,在面板中輸出:

import java.awt.*;


import javax.swing.*;


public class ss extends JFrame{


/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

// 用來顯示面板的代碼:

ss frame=new ss();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

frame.setSize(400, 400);

frame.add(new JLabel("**"));

}


}

輸出的結果是這樣的:

③ 怎麼用JAVA把資料庫查詢結果顯示在網頁上

java從資料庫查詢結果顯示在網頁上,步驟如下:

  1. 第一步:連接資料庫,並取得查詢結果:importjava.sql.*;

publicclassOraDriver{
publicstaticvoidmain(Stringargs[])throwsException{
//利用Oracle驅動進行連接
Class.forName("oracle.jdbc.driver.OracleDriver");//載入驅動
Stringurl="jdbc:oracle:thin:@localhost:1521:SCHOOL";
Connectionconn=DriverManager.getConnection(url,"scott","tiger");
Statementstat=conn.createStatement();
ResultSetrs=stat.executeQuery("SELECT姓名FROM學籍");
while(rs.next()){
System.out.println(rs.getString("姓名"));
}
}
}


2.在JSP上顯示可以用EL表達式如${user.getName()},也可以用JAVA胸本<%=user.getName()%>,或都直接用out.print(user.getName());

④ 使用記事本編寫JAVA程序,並運行輸出結果,具體的實現步驟是什麼

1、首先在電腦中新建一個記事本,將記事本的後綴改為「.java」,如下圖所示。

⑤ 如何讓java的程序結果在窗口中顯示

寫一個自定義的線程類,把你要最終展示數據的控制項作為這個類的屬性,通過構造方法或者set方法把控制項對象傳進去,就能在run方法中訪問到了

⑥ java程序運行沒任何結果顯示怎麼回事

你的程序正確啊,沒有錯誤。是不是你在運行的時候輸錯了啊。
先要編譯,然後運行。運行時輸入java StrngJoin hello java
就會看到想要的結果。

⑦ java 如何在圖形界面顯示程序運行結果

如果只是一些文本要顯示,可以在上面加個JTextArea,JTextField之類的組件,用這些組件的對象調用setText("")方法(括弧里是字元串)來顯示文本

比如:

importjava.awt.FlowLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.util.HashMap;

importjava.util.Map;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JScrollPane;

importjavax.swing.JTextArea;

/**文本區域

*

*@authorAdministrator

*

*/

{

=2306597749734227012L;

privateJButtonb1=newJButton("AddData"),b2=newJButton("ClearData");

privateJTextAreatext=newJTextArea(20,40);

privateMap<String,String>map=

newHashMap<String,String>();

publicTextArea(){

//Useupallthedata:

map.put("a","1");

map.put("b","2");

b1.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

for(@SuppressWarnings("rawtypes")Map.Entryme:map.entrySet()){

text.append(me.getKey()+":"+me.getValue()+" ");

}

}

});

b2.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

text.setText("");

}

});

setLayout(newFlowLayout());

add(newJScrollPane(text));

add(b1);

add(b2);

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

GUItools.SwingConsole.run(newTextArea(),475,475);

}

}

JTextField和這差不多,只不過是顯示單行的。

如果要顯示其他字體的,可以用HTML格式,如下:

importjava.awt.FlowLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

/**Swing組件上的HTML

*

*@authorAdministrator

*

*/

@SuppressWarnings("serial")

{

privateJButtonb=newJButton(

"<html><b><fontsize=+2>"+

"<center>Hello!<br><i>Pressmenow!");

//必須使文本以"<html>"標記開始。

publicHTMLButton(){

//TODOAuto-generatedconstructorstub

b.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

add(newJLabel("<html>"+"<i><fontsize=+4>Kapow!"));

//Forceare-layouttoincludethenewlabel:

validate();

}

});

setLayout(newFlowLayout());

add(b);

}

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

GUItools.SwingConsole.run(newHTMLButton(),200,500);

}

}

⑧ Java 怎麼點擊一個按鈕 讓文本框里顯示輸出的結果

思路:定義一個按鈕,然後對按鈕進行監聽,監聽後,在裡面將結果放置在需要顯示結果的文本框中即可。

⑨ java程序輸出結果

運行到int k=++i時,k=1,i=1
之後判斷k<5,為真,輸出i=1,運行k+=2,這時k=3
然後再判斷k<5,為真,輸出i=1,運行k+=2,這時k=5
判斷k<5,為假,跳出while循環,運行for循環
i++,k=++i,這時k=3,i=3
之後判斷k<5,為真,輸出i=3,運行k+=2,這時k=5
判斷k<5,為假,跳出while循環,運行for循環
再之後k一直比5大,不運行while循環,所以只有3個輸出結果,113

⑩ java結果顯示不出

不顯示結果,在你確定class類存在的情況下,首先確定代碼中是否寫入了main方法,其次確定是否有System.out.print()來輸出結果
如果是class類存在確定存在,但是還是找不到class類,先使用命令CD (例如 cd d: 進入d盤)來進入和class文件相同的文件目錄,然後再使用命令行來解析class文件

閱讀全文

與java顯示結果相關的資料

熱點內容
機明自動編程軟體源碼 瀏覽:325
php埠號設置 瀏覽:540
phperegreplace 瀏覽:319
androidgridview翻頁 瀏覽:537
ssh協議編程 瀏覽:634
如何開我的世界電腦伺服器地址 瀏覽:861
玄關pdf 瀏覽:609
程序員學習論壇 瀏覽:940
程序員的毒雞湯怎麼做 瀏覽:547
安卓怎麼降級軟體到手機 瀏覽:281
雲與伺服器入門書籍推薦產品 瀏覽:636
delphi編程助手 瀏覽:761
電腦遇到伺服器問題怎麼辦 瀏覽:515
加工中心編程結束方法 瀏覽:296
了解什麼是web伺服器 瀏覽:139
面向對象的編程的基本特徵 瀏覽:718
php定時執行任務linux 瀏覽:787
php數組中刪除元素 瀏覽:724
螢石雲伺服器視頻 瀏覽:269
防火牆配置伺服器熱備的虛擬地址 瀏覽:189