تثبيت وتجميد أعمدة في أماكنها لدى استعراض جداول بيانات jtable
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1 • شاطر
تثبيت وتجميد أعمدة في أماكنها لدى استعراض جداول بيانات jtable
مثال جميل يوضح كيفية تجميد Freeze أعمدة في أماكنها لدى استعراض جداول بيانات jtable للحفاظ على منطقة مرئية فى الجدول عند التمرير إلى منطقة أخرى كما فى ورقة Excel


- الكود:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;
/**
* @version 1.0 12/05/98
*/
public class FixedColumnExample extends JFrame {
Object[][] data;
Object[] column;
JTable fixedTable,table;
public FixedColumnExample() {
super( "Fixed Column Example" );
setSize( 400, 150 );
data = new Object[][]{
{"1","11","A","","","","",""},
{"2","22","","B","","","",""},
{"3","33","","","C","","",""},
{"4","44","","","","D","",""},
{"5","55","","","","","E",""},
{"6","66","","","","","","F"}};
column = new Object[]{"fixed 1","fixed 2","a","b","c","d","e","f"};
AbstractTableModel fixedModel = new AbstractTableModel() {
public int getColumnCount() { return 2; }
public int getRowCount() { return data.length; }
public String getColumnName(int col) {
return (String)column[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
};
AbstractTableModel model = new AbstractTableModel() {
public int getColumnCount() { return column.length -2; }
public int getRowCount() { return data.length; }
public String getColumnName(int col) {
return (String)column[col +2];
}
public Object getValueAt(int row, int col) {
return data[row][col+2];
}
public void setValueAt(Object obj, int row, int col) {
data[row][col +2] = obj;
}
public boolean CellEditable(int row, int col) {
return true;
}
};
fixedTable = new JTable( fixedModel ) {
public void valueChanged(ListSelectionEvent e) {
super.valueChanged(e);
checkSelection(true);
}
};
table = new JTable( model ) {
public void valueChanged(ListSelectionEvent e) {
super.valueChanged(e);
checkSelection(false);
}
};
fixedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
fixedTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scroll = new JScrollPane( table );
JViewport viewport = new JViewport();
viewport.setView(fixedTable);
viewport.setPreferredSize(fixedTable.getPreferredSize());
scroll.setRowHeaderView(viewport);
scroll.setCorner(JScrollPane.UPPER_LEFT_CORNER,fixedTable.getTableHeader());
getContentPane().add(scroll, BorderLayout.CENTER);
}
private void checkSelection(boolean isFixedTable) {
int fixedSelectedIndex = fixedTable.getSelectedRow();
int selectedIndex = table.getSelectedRow();
if (fixedSelectedIndex != selectedIndex) {
if (isFixedTable) {
table.setRowSelectionInterval(fixedSelectedIndex,fixedSelectedIndex);
} else {
fixedTable.setRowSelectionInterval(selectedIndex,selectedIndex);
}
}
}
public static void main(String[] args) {
FixedColumnExample frame = new FixedColumnExample();
frame.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
System.exit(0);
}
});
frame.setVisible(true);
}
}
السنى- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 464
التقيم : 25
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» مدرس رياضيات متوسط ثانوي 97234924 بالكويت
» أفضل موقع تأجير سيارات في مصر
» مدرس رياضيات متوسط ثانوي 97234924 بالكويت
» شركة آي بي إس للخدمات الاستشارية المالية وتكنولوجيا المعلومات
» ادارة متجرك الالكتروني
» مدرس انجليزي متوسط ثانوي 97234912 بالكويت
» شركة IBS للاستشارات الاقتصادية والادارية
» أحصل ملبغ مالى "رمزي " نظير مشاركاتك و مقالاتك بالمنتدي
» "أحلامنا المرآة: فك رموزها واستكشاف عمق المعاني"