导航:首页 > 编程语言 > java的显示方法

java的显示方法

发布时间:2022-07-18 05:20:29

java怎么将查询到的数据库的内容显示到java图形界面上

public class frame1 extends JFrame {

public frame1() {
setContentPane(getPanel());
setSize(200, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

private JPanel getPanel() {
JPanel panel = new JPanel(new BorderLayout());
JTextArea text = new JTextArea();
//将信息整合成字符串赋值给JTextArea,
text.setText("姓名:Duck\n密码:1234 。。。。\n");
text.setVisible(true);
panel.add(text, BorderLayout.CENTER);
return panel;
}

public static void main(String[] args) {
new frame1();
}
}

我的也没错啊,我是将你查询到的数据库的内容整合成一个字符串,在弹出界面上的JTextArea 这个控件上显示,你可以把我给的例子运行一下看看...

我无语了,JFrame不是一个窗体么?
好吧,换一种说法,你想怎样显示这些数据?你所谓的窗体时另外弹出来的还是在原有窗体上

⑵ java里什么是方法,方法有什么特点

1、构造方法名与类名相同

2、构造方法没有返回值

3、主要作用是完成对新对象的初始化

4、在创建新对象时,系统自动的调用该类的构造方法

5、一个类可以有多个构造方法

6、每个类都有一个默认的构造方法,但是一旦用户显示的定义了构造方法,则系统默认的构造方法就不会生成了。

Java 接口

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

接口与类相似点:

⑶ java怎么在成员方法里实现信息的录入和显示

录入和显示可以理解为封装,即set和get方法,最后重写tostring方法,将信息打印即可。

⑷ 如何让java的程序结果在窗口中显示

写一个自定义的线程类,把你要最终展示数据的控件作为这个类的属性,通过构造方法或者set方法把控件对象传进去,就能在run方法中访问到了

⑸ java,为什么显示方法 printf对于参数long不适用

1.如果你得到是一个Object对象,可以用if(obj instanceof String)来判断是否是String对象,int是基本类型不可以这么判断,只能用它的包装类Integer,同样用instanceof 2.如果set方法只能接受一个参数,而且必须有int的话,可以写多个set方法,如set(String),set(int),编写不同的处理逻辑 3.instanceof 也是反射的一种方式 4.如果有2个Object的参数,可以用if(obj1.getClass()==obj2.getClass())来判断类型是否相同,如果要得到类型名,可以用obj.getClass().getName()来获得对象的类名

⑹ JAVA 中在一个组件上显示图片的所有方法

所有方法我可不知道,介绍个最常用的:通过Graphics对象来进行绘图,要获得此对象可通过方法getGraphics()来实现,举个例子:Graphics g=getGraphics();g.drawImage(image,0,0,this);drawImage()函数是Graphics对象的一个方法,意思就是把image画到本对象的0,0位置。此函数有很多重载的方法: drawImage(Image,int,int,ImageObserver);不再说了。 drawImage(Image,int,int,Color,ImageObserver);需要说的是Color是指的图片的背景色,如果图片有透明的区域,就用这个背景色。其余的参数含义刚说了,就不重复了。 drawImage(Image,int x,int y,int width,int height,ImageObserver);把image画在ImageObserver的x,y位置,宽为width,高为height。如果图片的大小与指定的宽高不一致,就会进行缩放,总是把整张图全画进去。 drawImage(Image,int,int,int,int,Color,ImageObserver);意思跟刚刚的一样,Color还是背景色。 drawImage(Image,int x1,int y1,int width1,int height1,int x2,int y2,int width2,int height2,ImageObserver);先将图片裁剪,从x2,y2开始裁,留下的图像宽为width2,高为height2,再把这个裁好的图画到ImageObserver的x1,y1上,大小为width1,height1,如果大小不一致还是用缩放的办法。 drawImage(Image,int,int,int,int,int,int,int,int,Color,ImageObserver);跟上面的一样,Color是背景色。 需要注意的是getGraphics()方法是JComponent对象的方法,所有的Swing对象都继承JComponent对象,所以象JFrame等类都有这个方法,也就是说,此方法不能在JComponent对象以外的地方调用,显然的不能写在main方法里。drawImage()函数里的Image对象可以这样用:Image image=Toolkit.getDefaultToolKit().getImage("my.jpg");这样就获得了一张图片。drawImage()函数里的ImageObserver对象其实就是JComponent对象,因为ImageObserver是个接口,JComponent类实现了它,所以所有的JComponent对象就是ImageObserver对象,就是JFrame,JPanel等对象。当然还有很多方法,刚才说了缩放的裁剪,其实图像的过滤还有很多内容,要说起来的话恐怕要上万字了,我懒得说那么多了...这个方法挺好用的,一般的软件就用这个就没问题了,除非你说你想做个photoshop那我就爱莫能助了。再举个例子吧,显示一张图片://Display.java//-------------------------------import javax.swing.JFrame;import java.awt.Toolkit; public class Display extends JFrame{ private Image image; public JFrame(){super("MyDisplay");image=Toolkit.getDefaultToolkit().getImage("my.jpg");//图片换成你自己的this.setSize(800,600);} public void paint(Graphics g){g.drawImage(image,0,0,800,600,this);//画图片,这里的paint方法系统自动调用,并且还传递进来了Graphics对象,省的再自己用getGraphics方法了。} public static void main(String[] args){new Display().setVisible(true);} }就说这么多吧,要真讲起来实在太麻烦了,介绍本书给你:java2图形设计卷I:AWT,java2图形设计卷II:SWING,这两本书够你看的了,虽然内容老旧,10年前的书,但是讲的全是基础,而且里面的东西现在还在用。你要是E文好就去SUN官网看技术文档或者jdk的帮助文档。

⑺ 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分页方法

定义两个Vector,一个为储存查询所有记录的totalV,另一个储存当前页的记录currentPageV;
总的记录数:int totalSize = totalV.getSize();
每页显示的记录数:int countPerPage;
总页数:int totalPageNum = totalSize/countPerPage;

//如果总的记录数和每页记录数的余数大于零,
//那么总的页数为他们的整除结果加一
if (totalSize%countPerPage > 0 ){
totalPageNum = totalSize/countPerPage + 1;
}
当前的页数:pageNum;

for (int j = 0;j<totalV.size();j++){
//分页,根据当前的页数和每页显示的记录数从totalV中取出记录
//往currentPageV中添加记录;
//如果当前记录在(当前页码-1)*每页显示记录数(包括等于)
//和 当前页码*每页显示记录数(不包括等于)之间的时候;
//就属于该页的数据
if ( (j >= (pageNum - 1) * countPerPage) && (j < pageNum * countPerPage)) {
currentPageV.addElement(totalV.get(j));
}
//当currentPageV记录数等于每页显示记录数,
//停止往currentPageV中添加记录
if (currentPageV.size() == countPerPage) {
break;
}
}
那么,当前页中显示的记录,就是currentPageV中的记录。

第二个分页
在使用数据库的过程中,不可避免的需要使用到分页的功能,可是JDBC的规范对此却没有很好的解决。对于这个需求很多朋友都有自己的解决方案,比如使用Vector等集合类先保存取出的数据再分页。但这种方法的可用性很差,与JDBC本身的接口完全不同,对不同类型的字段的支持也不好。这里提供了一种与JDBC兼容性非常好的方案。
JDBC和分页
Sun的JDBC规范的制定,有时很让人哭笑不得,在JDBC1.0中,对于一个结果集(ResultSet)你甚至只能执行next()操作,而无法让其向后滚动,这就直接导致在只执行一次SQL查询的情况下无法获得结果集的大小。所以,如果你使用的是JDBC1.0的驱动,那么是几乎无法实现分页的。
好在Sun的JDBC2规范中很好的弥补了这一个不足,增加了结果集的前后滚动操作,虽然仍然不能直接支持分页,但我们已经可以在这个基础上写出自己的可支持分页的ResultSet了。

和具体数据库相关的实现方法
有一些数据库,如Mysql, Oracle等有自己的分页方法,比如Mysql可以使用limit子句,Oracle可以使用ROWNUM来限制结果集的大小和起始位置。这里以Mysql为例,其典型代码如下:
// 计算总的记录条数
String SQL = "SELECT Count(*) AS total " + this.QueryPart;
rs = db.executeQuery(SQL);
if (rs.next())
Total = rs.getInt(1);
// 设置当前页数和总页数
TPages = (int)Math.ceil((double)this.Total/this.MaxLine);
CPages = (int)Math.floor((double)Offset/this.MaxLine+1);
// 根据条件判断,取出所需记录
if (Total > 0) {
SQL = Query + " LIMIT " + Offset + " , " + MaxLine;
rs = db.executeQuery(SQL);
}
return rs;
}
毫无疑问,这段代码在数据库是Mysql时将会是漂亮的,但是作为一个通用的类(事实上我后面要提供的就是一个通用类库中的一部分),需要适应不同的数据库,而基于这个类(库)的应用,也可能使用不同的数据库,所以,我们将不使用这种方法。

另一种繁琐的实现方法
我看过一些人的做法(事实上包括我在内,一开始也是使用这种方法的),即不使用任何封装,在需要分页的地方,直接操作ResultSet滚到相应的位置,再读取相应数量的记录。其典型代码如下:
<%
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_READ_ONLY);
strSQL = "select name,age from test";
//执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL);
//获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow();
//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
%>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>
<%
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1);
//显示数据
i = 0;
while(i<intPageSize && !sqlRst.isAfterLast()){
%>
<tr>
<td><%=sqlRst.getString(1)%></td>
<td><%=sqlRst.getString(2)%></td>
</tr>
<%
sqlRst.next();
i++;
}
}
%>
</table>
很显然,这种方法没有考虑到代码重用的问题,不仅代码数量巨大,而且在代码需要修改的情况下,将会无所适从。

使用Vector进行分页
还见过另一些实现分页的类,是先将所有记录都select出来,然后将ResultSet中的数据都get出来,存入Vector等集合类中,再根据所需分页的大小,页数,定位到相应的位置,读取数据。或者先使用前面提到的两种分页方法,取得所需的页面之后,再存入Vector中。
扔开代码的效率不说,单是从程序结构和使用的方便性上讲,就是很糟糕的。比如,这种做法支持的字段类型有限,int, double, String类型还比较好处理,如果碰到Blob, Text等类型,实现起来就很麻烦了。这是一种更不可取的方案。

一个新的Pageable接口及其实现
很显然,看过上面三种实现方法后,我们对新的分页机制有了一个目标,即:不与具体数据库相关;尽可能做到代码重用;尽可能与原JDBC接口的使用方法保持一致;尽可能高的效率。
首先,我们需要提供一个与java.sql.ResultSet向下兼容的接口,把它命名为Pageable,接口定义如下:
public interface Pageable extends java.sql.ResultSet{
/**返回总页数
*/
int getPageCount();
/**返回当前页的记录条数
*/
int getPageRowsCount();
/**返回分页大小
*/
int getPageSize();
/**转到指定页
*/
void gotoPage(int page) ;
/**设置分页大小
*/
void setPageSize(int pageSize);
/**返回总记录行数
*/
int getRowsCount();
/**
* 转到当前页的第一条记录
* @exception java.sql.SQLException 异常说明。
*/
void pageFirst() throws java.sql.SQLException;
/**
* 转到当前页的最后一条记录
* @exception java.sql.SQLException 异常说明。
*/
void pageLast() throws java.sql.SQLException;
/**返回当前页号
*/
int getCurPage();
}
这是一个对java.sql.ResultSet进行了扩展的接口,主要是增加了对分页的支持,如设置分页大小,跳转到某一页,返回总页数等等。
接着,我们需要实现这个接口,由于这个接口继承自ResultSet,并且它的大部分功能也都和ResultSet原有功能相同,所以这里使用了一个简单的Decorator模式。
PageableResultSet2的类声明和成员声明如下:
public class PageableResultSet2 implements Pageable {
protected java.sql.ResultSet rs=null;
protected int rowsCount;
protected int pageSize;
protected int curPage;
protected String command = "";
}
可以看到,在PageableResultSet2中,包含了一个ResultSet的实例(这个实例只是实现了ResultSet接口,事实上它是由各个数据库厂商分别实现的),并且把所有由ResultSet继承来的方法都直接转发给该实例来处理。
PageableResultSet2中继承自ResultSet的主要方法:
//……
public boolean next() throws SQLException {
return rs.next();
}
//……
public String getString(String columnName) throws SQLException {
try {
return rs.getString(columnName);
}
catch (SQLException e) {//这里是为了增加一些出错信息的内容便于调试
throw new SQLException (e.toString()+" columnName="
+columnName+" SQL="+this.getCommand());
}
}
//……
只有在Pageable接口中新增的方法才需要自己的写方法处理。
/**方法注释可参考Pageable.java
*/
public int getCurPage() {
return curPage;
}
public int getPageCount() {
if(rowsCount==0) return 0;
if(pageSize==0) return 1;
//calculate PageCount
double tmpD=(double)rowsCount/pageSize;
int tmpI=(int)tmpD;
if(tmpD>tmpI) tmpI++;
return tmpI;
}
public int getPageRowsCount() {
if(pageSize==0) return rowsCount;
if(getRowsCount()==0) return 0;
if(curPage!=getPageCount()) return pageSize;
return rowsCount-(getPageCount()-1)*pageSize;
}
public int getPageSize() {
return pageSize;
}
public int getRowsCount() {
return rowsCount;
}
public void gotoPage(int page) {
if (rs == null)
return;
if (page < 1)
page = 1;
if (page > getPageCount())
page = getPageCount();
int row = (page - 1) * pageSize + 1;
try {
rs.absolute(row);
curPage = page;
}
catch (java.sql.SQLException e) {
}
}
public void pageFirst() throws java.sql.SQLException {
int row=(curPage-1)*pageSize+1;
rs.absolute(row);
}
public void pageLast() throws java.sql.SQLException {
int row=(curPage-1)*pageSize+getPageRowsCount();
rs.absolute(row);
}
public void setPageSize(int pageSize) {
if(pageSize>=0){
this.pageSize=pageSize;
curPage=1;
}
}
//PageableResultSet2的构造方法:
public PageableResultSet2(java.sql.ResultSet rs) throws java.sql.SQLException {
if(rs==null) throw new SQLException("given ResultSet is NULL","user");

rs.last();
rowsCount=rs.getRow();
rs.beforeFirst();
this.rs=rs;
}

/*如果要提高效率,可以利用select count(*) 语句取得所有记录数,注释掉
构造函数的rs.last();rowsCount=rs.getRow();rs.beforeFirst();三句。
在调用构造函数后调用此方法获得所有的记录,参数是select count(*)后的结果集
*/
public void setRowsCount(java.sql.ResultSet rs)throws java.sql.SQLException {
if(rs==null) throw new SQLException("given ResultSet is NULL","user");
rowCount=rs.getInt(1);
}

这里只是简单的取得一个总记录数,并将记录游标移回初始位置(before first),同时将参数中的ResultSet赋给成员变量。

Pageable的使用方法
因为Pageable接口继承自ResultSet,所以在使用方法上与ResultSet一致,尤其是在不需要分页功能的时候,可以直接当成ResultSet使用。而在需要分页时,只需要简单的setPageSize, gotoPage,即可。
PreparedStatement pstmt=null;
Pageable rs=null;
……//构造SQL,并准备一个pstmt.
rs=new PageableResultSet2(pstmt.executeQuery());//构造一个Pageable
rs.setPageSize(20);//每页20个记录
rs.gotoPage(2);//跳转到第2页
for(int i=0; i<rs.getPageRowsCount(); i++){//循环处理
int id=rs.getInt(“ID”);
……//继续处理

rs.next();
}

总结
一个好的基础类应该是便于使用,并且具备足够的可移植性,同时要保证其功能的完善。在上面的实现中,我们从java.sql.ResultSet接口继承出Pageable,并实现了它。这就保证了在使用中与JDBC原有操作的一致性,同时对原有功能没有缩减。
同时它也是易于使用的,因为封装了一切必要的操作,所以在你的代码中唯一显得"难看"和"不舒服"的地方就是需要自己去构造一个PageableResultSet2。不过只要你愿意,这也是可以解决的。
当然它也有具有充分的可移植性,当你将数据库由Oracle变为Mysql或者SQLServer的时候,你仍然可以使用这些分页的代码。它在使用中(或者说在移植的过程中)唯一的限制就是你必须要使用一个支持JDBC2的驱动(现在明白为什么我把类命名为PageableResultSet2了吧。:P),不过,好在JDBC2已经成为标准了,绝大多数的数据库(如Oracle, Mysql, SQLServer)都有自己的或者第三方提供的JDBC2的驱动。
OK,这个分页的实现是否对你的编程有帮助呢?仔细看看,其实真正自己写的代码并不多的,大部分都只是简单的转发操作。一个合适的模式应用可以帮你很大忙。

这里只是简单的取得一个总记录数,并将记录游标移回初始位置(before first),同时将参数中的ResultSet赋给成员变量。

阅读全文

与java的显示方法相关的资料

热点内容
域名与ip地址通过什么服务器查 浏览:95
企业网站需要什么云服务器配置 浏览:909
辽事通服务器出现错误是什么原因 浏览:763
能否将一个表格的子表加密 浏览:63
手机ios微信收藏怎么加密 浏览:593
安卓如何改黑色 浏览:330
oracle数据库导出命令 浏览:696
用python做钟表盘 浏览:873
腰椎压缩性骨折吧 浏览:326
安卓怎么把软件改成火影忍者 浏览:704
手机如何切换软件商店服务器 浏览:325
江苏省python二级题型 浏览:231
文件编译器在哪 浏览:28
选择目录时此电脑的文件夹怎么删 浏览:25
狗狗币加密支付服务 浏览:897
怎么使用指南针APP确定方向 浏览:372
php读取图片并输出 浏览:321
如何组合多个pdf文件 浏览:669
工作表格excel取消加密 浏览:133
真空压缩袋手泵怎么用 浏览:427