以下是最簡單的分頁(一個(gè)方法搞定):
創(chuàng)新互聯(lián)專注于普蘭網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供普蘭營銷型網(wǎng)站建設(shè),普蘭網(wǎng)站制作、普蘭網(wǎng)頁設(shè)計(jì)、普蘭網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造普蘭網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供普蘭網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
首先是方法:
//用于按照頁數(shù)和每頁顯示的記錄數(shù)進(jìn)行圖書查詢
public List getBookList(int page,int pageSize)throws Exception{
List list=new ArrayList();
Connection conn=this.getConn();
String sql="select top "+page+" * from bookInfo " +
"where bookId not in" +
"(select top "+((pageSize-1)*page)+" bookId from bookInfo)";
PreparedStatement pstmt=conn.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
//每條數(shù)據(jù)對應(yīng)一個(gè)實(shí)體類
BookInfo book=new BookInfo();
book.setBookId(rs.getInt("bookId"));
book.setBookName(rs.getString("bookName"));
book.setBookType(rs.getString("bookType"));
book.setBookStatus(rs.getString("bookStatus"));
list.add(book);
}
this.closeAll(conn, pstmt, rs);
return list;
}
2:JSP頁面代碼:
%@ page language="java" import="java.util.*,entity.*,operator.*" pageEncoding="gbk"%
html
head
/head
body
table border="1"
tr
td width="150"圖書名稱/td
td width="100"類別/td
td width="100"狀態(tài)/td
/tr
%
request.setCharacterEncoding("gbk");
int pageNum=1;
String pageStr=request.getParameter("pageNum");
if(pageStr==null){
pageNum=1;
}else{
pageNum=Integer.parseInt(pageStr);
}
Operator o=new Operator();
List list=o.getBookList(6,pageNum);
for(int i=0;ilist.size();i++){
BookInfo book=(BookInfo)list.get(i);
%
tr
td%=book.getBookName() %/td
td%=book.getBookType() %/td
td%=book.getBookStatus() %/td
/tr
%
}
%
tr
td colspan="3"a href="infoList.jsp?pageNum=%=pageNum==1?pageNum:pageNum-1%"上一頁/a ||
a href="infoList.jsp?pageNum=%=list.size()6?pageNum:pageNum+1 %"下一頁/a/td//二元運(yùn)算符,相當(dāng)于if判斷 上一頁時(shí)如果當(dāng)前頁=1為true,就是當(dāng)前頁,否則還可以減1
//下一頁如果當(dāng)前頁的size小于你的每一頁設(shè)置的條數(shù)為true,那么就是是當(dāng)前頁,否則就+1;
/tr
/table
/body
/html
可以用下面的代碼放在界面所在的構(gòu)造函數(shù)內(nèi),便出現(xiàn)美麗的Nimbus界面風(fēng)格.
至于具體的界面呢.就看你的天分了...
try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//Nimbus風(fēng)格,新出來的外觀,JDK 6 Update10 版本開始出現(xiàn)
} catch (Exception e) {
}
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.swing.*;public class Login extends JFrame{
JLabel user,passwd;
JTextField userput;
JPasswordField passput;
JButton denglu,tuichu;
public Login(){
super("用戶登錄");
Container c=getContentPane();
c.setLayout(null);
Font f=new Font("宋體",Font.PLAIN,12);
user=new JLabel("賬號");
passwd=new JLabel("密碼");
userput=new JTextField();
passput=new JPasswordField();
denglu=new JButton("登錄");
denglu.setFont(f);
denglu.addActionListener(new NewAction());
tuichu=new JButton("退出");
tuichu.setFont(f);
tuichu.addActionListener(new NewAction());
user.setBounds(50,50,60,20);
userput.setBounds(110,50,150,20);
passwd.setBounds(50,80,60,20);
passput.setBounds(110,80,150,20);
denglu.setBounds(50,160,60,30);
tuichu.setBounds(200,160,60,30);
c.add(user);
c.add(userput);
c.add(passwd);
c.add(passput);
c.add(denglu);
c.add(tuichu);
setSize(350, 300);
setVisible(true);
}
class NewAction implements ActionListener{
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CDM";
String user="sa";
String passwd="394513265";
java.sql.Connection con;
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con= DriverManager.getConnection(url,user,passwd);
}catch(Exception ep){
JOptionPane.showMessageDialog(null, "加載驅(qū)動(dòng)失??!");
}
if(e.getSource()==denglu){
Find();
}
if(e.getSource()==tuichu){
dispose();
}
} public void Find(){
String lk="select * from login";
try{
Statement sql=con.createStatement();
ResultSet rs=sql.executeQuery(lk);
while(rs.next()){
if(rs.getString(1).equals(userput.getText()) rs.getString(2).equals(passput.getText()))
new MainClient();
else
JOptionPane.showMessageDialog(null, "用戶名或密碼錯(cuò)誤");
}
rs.close();
}catch(SQLException p){
JOptionPane.showMessageDialog(null, p.getMessage());
}
}
}
public static void main(String[] args) {
Login l=new Login();
l.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
步驟就是建個(gè)工程 然后建個(gè)class
可以把這段代碼寫在隱藏域里,如果需要把它顯示出來的時(shí)候,用java取消隱藏域,就可以了吧。
確實(shí)Java做界面不怎么樣
但是java也有界面做得很好的...比如Eclipse
誰能否認(rèn) Eclipse的界面 也還算不錯(cuò)呢 ...
如果要把界面做得非常精美..那光靠awt,swing這些成品的框架是不行的
你必須用接口層的類來進(jìn)行編程...
比如說你用JButton這個(gè)類..它屬于實(shí)現(xiàn)層的類..很多都是默認(rèn)的
如果你要讓你的按鈕擺出來 各方面都要達(dá)到你自己的效果
那你就得自己去實(shí)現(xiàn)AbstractButton類...根據(jù)自己需要進(jìn)行設(shè)置
我在博客里應(yīng)用的樣式是SublimeText編輯器里面的主題,這跟我用它來編寫代碼有關(guān)。其實(shí)如果ST支持復(fù)制為富文本形式的話,事情就要方便得多,直接copy然后paste到word里就把樣式帶上了,包括縮進(jìn),代碼高亮等。遺憾的是它不支持。所以出路便是找一個(gè)可用的ST插件讓它支持富文本復(fù)制。
好在ST流行度大,社區(qū)活躍,插件眾多,還真有款能夠完成我需求的插件--n1k0/SublimeHighlight。更詳細(xì)的關(guān)于如何安裝的問題等可見它的項(xiàng)目頁面。
簡單點(diǎn)其實(shí)跟安裝其他ST插件是一樣的,先Ctrl+Shift+P調(diào)出control panel,然后輸入install package,不用輸完,當(dāng)輸入了Install后便出來了,然后回車等待插件列表的顯示,這個(gè)過程大概有個(gè)幾秒鐘的樣子。
然后輸入插件名稱sublimehighlight,選中并進(jìn)行安裝。如果這一步進(jìn)行順利,則跳到下一節(jié)。
當(dāng)你進(jìn)行到上面一步發(fā)現(xiàn)搜不出該插件時(shí),需要手動(dòng)添加該插件的repo到本地。
具體做法是退出剛才的界面重新輸入Ctrl+Shift+P調(diào)出control panel,輸入add repository 選中并回車。
這時(shí)界面下方會出現(xiàn)輸入repo地址的地方,將輸入后回車確定。
當(dāng)提示添加成功后再次進(jìn)行上面安裝插件的步驟來到插件列表,輸入sublimehighlight,選中該插件進(jìn)行安裝,如果一切順利,恭喜你萬里長征第一步走完!
設(shè)置喜歡的代碼樣式
安裝完成后,可以設(shè)置你喜歡的樣式,這個(gè)樣式是你復(fù)制出來的樣式,跟你在ST里面用的代碼樣式是沒有關(guān)系的。也就是說最終復(fù)制出來的代碼的樣式以這個(gè)插件的設(shè)置為準(zhǔn)。
可選的樣式可以在插件的GitHub主頁看到,下圖直接來自其項(xiàng)目頁面,圖中包括了主題的名稱和預(yù)覽:
設(shè)置方法是依次點(diǎn)開preferences=package settings=sublimehighlight=settings - user