PDA

View Full Version : درج عکس از دیتا بیس به جدول



ebrahhimi
چهارشنبه 19 آبان 1389, 16:13 عصر
سلام دوستان
میخواستم عکس هایی که تو دیتا بیس ذخیره کردم رو بیارم تو jtable .
پروژه من از تکنیک دو لایه ای استفاده می کنه من table model رو تو یک کلاس و jtable نیز تو یه کلاس دیگه دارم می خواستم عکس رو از دیتا بیس بخونم بریزم تو model و مدل رو به jtable که توکلاس دیگه ای هست بدم .
من نتونستم راه خوبی پیدا کنم و کلافه شدم ...
خواهشمندم منو راهنمایی کنید در صورت امکان !
را ه هایی پیدا کردم ولی حالت استاتیک میشه مثلا از tablecellrender استفاده کردم اما اونو باید تو کلاس view یا همون جدول کار کنم اما حالت دینامیک رو نداره خیلی هم پیچیده میشه .
کمک !

javaphantom
چهارشنبه 19 آبان 1389, 18:19 عصر
سلام دوستان
میخواستم عکس هایی که تو دیتا بیس ذخیره کردم رو بیارم تو jtable .
پروژه من از تکنیک دو لایه ای استفاده می کنه من table model رو تو یک کلاس و jtable نیز تو یه کلاس دیگه دارم می خواستم عکس رو از دیتا بیس بخونم بریزم تو model و مدل رو به jtable که توکلاس دیگه ای هست بدم .
من نتونستم راه خوبی پیدا کنم و کلافه شدم ...
خواهشمندم منو راهنمایی کنید در صورت امکان !
را ه هایی پیدا کردم ولی حالت استاتیک میشه مثلا از tablecellrender استفاده کردم اما اونو باید تو کلاس view یا همون جدول کار کنم اما حالت دینامیک رو نداره خیلی هم پیچیده میشه .
کمک !


public class MyFrame extends JFrame {


private JScrollPane myScrollPane;

private JTable myTable;


public MyFrame() {
initializeComponent();
}


private void initializeComponent() {

this.setBounds(new Rectangle(400,400));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
this.getContentPane().add(this.getMyScrollPane());
this.setVisible(true);
}

public JScrollPane getMyScrollPane() {
if (this.myScrollPane == null) {
this.myScrollPane = new JScrollPane(this.getMyTable());

}
return myScrollPane;
}

public JTable getMyTable() {
if (this.myTable == null) {
this.myTable = new JTable();
this.myTable.setModel(new MyTableModel());
this.myTable.setRowHeight(500);
TableCellRenderer tableCellRenderer = new TableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (value instanceof JLabel) {
return (JLabel) value;
}
return new JLabel();
}
};
this.myTable.setDefaultRenderer(myTable.getColumnC lass(0), tableCellRenderer);


}
return myTable;
}

public static void main(String[] s) {
new MyFrame();
}
}



public class MyTableModel extends DefaultTableModel {

private Object[] columns = {"picture"};

private JLabel[] labels = new JLabel[2];



@Override
public TableModelListener[] getTableModelListeners() {
return super.getTableModelListeners(); //To change body of overridden methods use File | Settings | File Templates.
}

/**
* Constructs a default <code>DefaultTableModel</code>
* which is a table of zero columns and zero rows.
*/
public MyTableModel() {

// super();

for (int i = 0; i < labels.length; i++) {

labels[i] = new JLabel() {

ImageIcon icon = new ImageIcon("/home/zack/Pictures/babak-200x267.JPG");
@Override
protected void paintComponent(Graphics g) {
g.drawImage(icon.getImage(), 5, 5, null);
super.paintComponent(g);
}
};
}

addRow(labels);
addRow(labels);

}


@Override
public void addRow(Object[] rowData) {
super.addRow(rowData); //To change body of overridden methods use File | Settings | File Templates.
}


@Override
public int getColumnCount() {
return columns.length;
}


@Override
public boolean isCellEditable(int row, int column) {
return false;
}


@Override
public String getColumnName(int column) {
return this.columns[column].toString();
}

}