You are on page 1of 15

Lesson 15

Refresh- Print - Search

Modern Programming Language

Associate Professor
Qamaruddin Shamsi

Addison Wesley
is an imprint of
Lesson Topics
Lesson 15 discusses the following main topics:

• Design and Coding

– Main Form
• Management Menu
– Student Management
» Student Management Report
– Employee Management
» Employee Management Report
• Deleting & Updating Process
• Conclusion
11-2
‫در قدم اول یک ‪ Login Form‬را با مشخصات ذیل دیزاین نمایید‬
‫البته این فعالیت را در درسهای قبل انجام داده اید‪.‬‬
‫در قدم دوم در ‪ Main Form‬یک ‪ Menu‬تحت نام ‪ Management‬که حاوی ‪ 2‬مینوی‬
‫فرعی دیگر تحت نام ‪ Student Management‬و ‪ Employee Management‬میباشد‬
‫(البته این فعالیت را در درسهای قبل انجام داده اید)‬ ‫آماده نمایید‬
‫در قدم سوم یک فورم را تحت نام ‪ Student Management Report‬دیزاین نموده که در سمت راست آن‬
‫یک ‪ Table‬و در سمت چپ آن تمام فیلدهای ‪ Student Registration‬را عالوه نمایید‪.‬‬
‫(البته این فعالیت را در درسهای قبل انجام داده اید)‬
‫در اینجا ‪ Button 2‬را تحت نام ‪ Print‬و ‪ Refresh‬اضافه نمایید‬
Print ‫) نموده و کود ذیل را غرض‬Double Click( ‫ دوبار کلک‬Print ‫حال روی دکمه‬
‫نمودن نوشته کنید‬

MessageFormat header = new MessageFormat("Report");


MessageFormat footer = new MessageFormat("");
‫ الزم‬.‫ را تشکیل دهید‬MessageFormat ‫در اینجا آبجیکت‬
‫ در اینجا صرف‬.‫ باید ذکر گردد‬Report ‫نیست که کلمه‬
.‫نشاندهنده اینست که راپور را چاپ میکند‬
try{
jTable1.print(JTable.PrintMode.FIT_WIDTH,header,footer);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e.getMessage());
}
‫) نموده و کود ذیل را غرض‬Double Click( ‫ دوبار کلک‬Refresh ‫حال روی دکمه‬
‫ نمودن نوشته کنید‬Refresh

this.dispose ( );

StudentManagement Report s = new StudentManagement Report();


s.setVisible(true);
.‫اول صفحه قبل بسته گردد و همان صفحه دوباره باز گردد‬

‫و صفحه در وسط سکرین باز گردد‬

s.setLocationRelativeTo(null);
‫حال در قدم اول یک ‪ Textbox‬را روی فورم اضافه نموده و برای اینکه وقتی بیرون از همین ‪Textbox‬‬
‫کلک گردد متن (‪ )Search Name Here‬مشاهده شود و اگر داخل آن کلک گردد در آنصورت متن پاک‬
‫گردد‪.‬‬
‫برای این روی ‪ Textbox‬متذکره ‪ Right Click‬نموده و از ‪ Event‬اختیار ‪ Focus‬و از آنجا اختیار ‪Focus‬‬
‫‪ Gained‬را انتخاب نمایید و کود ذیل را در آن نوشته کنید‪:‬‬
‫;)" "(‪T.setText‬‬
‫بار دوم عین پروسه را تکرار نموده اما این بار اختیار ‪ Focus Lost‬انتخاب نمایید و کود ذیل را در آن نوشته‬
‫کنید‪:‬‬
‫;)"‪T.setText("Search Name Here‬‬
‫ که ارتباط بین‬Connections ‫ رفته و بیرون از میتود‬Connections ‫در قدم دوم به فایل‬
‫ را برقرار میسازد کود ذیل را اضافه کنید (متوجه باشید که کود‬MySQL ‫ و‬NetBeans
‫ اما داخل کالس‬Connections ‫شما باید بیرون میتود فرعی‬
)‫ جابجا گردد‬public class Connections

public static boolean command (String query){

try{
java.sql.Connection con
=
DriverManager.getConnection("jdbc:mysql://localhost/Jahan","root","123");
java.sql.Statement st = con.createStatement();
st.execute(query);
return true;
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
return false;
}}
‫دیتابیس را به هر نام که تعریف کرده اید در اینجا ذکر کنید‬
public Statement st; ‫به تعقیب کود سالید قبلی کود ذیل را اضافه کنید‬
public ResultSet rs;
public com.mysql.jdbc.Connection con;
public Object [][] filltable (String query){
try{
com.mysql.jdbc.Connection con =
(com.mysql.jdbc.Connection)
DriverManager.getConnection("jdbc:mysql://localhost/Jahan","root","123");
st = (Statement) con.createStatement();
rs = select(query);
rs.last();
int rows = rs.getRow();
int columns = rs.getMetaData().getColumnCount();
rs.beforeFirst();
Object[][] data = new Object[rows][columns];
int x = 0;
while(rs.next()){
for (int y = 0 ; y < columns ; y++){
data[x][y] = rs.getObject(y+1);
}
x++;
}
return data;
}catch(Exception e){
JOptionPane.showMessageDialog(null, e.getMessage());
‫به تعقیب کود سالید قبلی کود ذیل را اضافه کنید‬

public ResultSet select (String query){


try {
return st.executeQuery(query);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());

return null;
}}}
Key ‫ اختیار‬Event ‫ نموده و از‬Right Click ‫ متذکره‬Textbox ‫در قدم سوم باز هم روی‬
:‫ را انتخاب نموده و کود ذیل را در آن نوشته کنید‬KeyTypped ‫و از آنجا اختیار‬

‫ با استفاده از آنصورت میگیرد‬Search ‫ متحول است که‬name - ‫ است‬Textbox ‫ نام‬T

String name = T.getText();


Connections S = new Connections ();
Object [][] search = S.filltable("select * from BCS where name like '%" +
name +"%'");
String [] Cname = {"ID", "Name", "Father Name", "Address", "Gender"};

jTable1 = new javax.swing.JTable(search , Cname);


jScrollPane1.setViewportView(jTable1);

‫ آن‬Object ‫ در اینجا‬.‫ را برقرار نموده است‬MySQL ‫ و‬NetBeans ‫ است که ارتباط بین‬Connection ‫نام فایل‬
.‫در نظر گرفته شده است‬

.‫ معرفی گردیده است‬Connections ‫ نمودن در فایل‬Search ‫ میتود است که غرض‬fillTable

‫ گردد‬Scroll ‫ باید‬jTable1 ‫ بخاطر استفاده میشود تا به شکل دینامیکی‬jScrollPanel


‫حال اگر داخل ‪ Textbox‬که به نام ‪ T‬مسمی گردیده کلک کنید متن داخل آن‬
‫(‪ )Search Name Here‬حذف میگردد و شما میتوانید که به حساب نام ریکارهای‬
‫داخل جدول ‪ jTable1‬را جستجو کنید و نتیجه به شکل دینامیکی مشاهده خواهد گردید‪.‬‬
‫حال اگر بیرون از ‪ Textbox‬متذکره کلک کنید متن (‪ )Search Name Here‬در‬
‫داخل آن ظاهر خواهید گردید‪.‬‬
‫نتیجه گیری‬
‫امروز توانستیم که در پروژه خود اختیارات ‪ Print ،Refresh‬و ‪ Dynamic Search‬را‬
‫اضافه نماییم‪.‬‬

You might also like