bobby1112
17-02-2010, 16:05
salve ragazzi ho questo problemasto creando una JDialog che contiene 2 Tabelle(con 1 colonna) con i rispettivi modelli ma non riesco ad impostare il nome alle colonne
package view.dialogs.checkDatatypeDialogs;
import java.awt.Color;
import java.awt.Component;
import java.util.LinkedList;
import java.util.List;
import javax.swing.Box;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import model.program.Attribute;
import model.program.Entity;
import model.program.SourceEntity;
import model.utilities.ModelUtilities;
public class CheckDialog extends JDialog{
private JList databasetype;
private JList typtype;
private JTable tableTypeDatabase=new JTable();
private JTable tableTypeTyp=new JTable();
private TableModelDatabase model=new TableModelDatabase();
private TableModelTyp model2=new TableModelTyp();
public CheckDialog(JFrame owner,String [][] datatype,SourceEntity typdatatype)
{
super(owner);
this.setName("Check DataType");
model.setEntity(typdatatype);
model2.setEntity(datatype);
tableTypeDatabase.setModel(model);
tableTypeTyp.setModel(model2);
this.setSize(350,200);
if (owner != null){
int x = (owner.getWidth() - this.getWidth()) / 2;
int y = (owner.getHeight() - this.getHeight()) / 2;;
this.setLocation(x, y);
}
Box top=Box.createVerticalBox();
top.add(Box.createVerticalStrut(30));
Box table1=Box.createHorizontalBox();
top.add(table1);
table1.add(tableTypeDatabase);
top.add(Box.createHorizontalStrut(30));
table1.add(tableTypeTyp);
JPanel panel = new JPanel();
panel.add(top);
getContentPane().add(panel);
this.setVisible(true);
}
private class TableModelDatabase extends AbstractTableModel{
/**
*
*/
private static final long serialVersionUID = 1L;
private SourceEntity entity = null;
private String [] columnName={"Database"};
public void setEntity(SourceEntity entity){
this.entity = entity;
}
public int getColumnCount() {
return 1;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 2){
return true;
}
return false;
}
public int getRowCount() {
if (entity != null){
return entity.getAttributes().size();
}else{
return 1;
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
if (entity != null){
Attribute attribute = entity.getAttributes().get(rowIndex);
if (columnIndex == 0){
return attribute.getOriginalType();
}else if (columnIndex == 1){
return attribute.getOriginalType();
}else{
return attribute.getImportedType();
}
}else{
return null;
}
}
public String getColumnName(int column) {
return columnName[0];
}
//Selezionare il tipo con menu a tendina
@Override
public void setValueAt(Object arg0, int arg1, int arg2) {
super.setValueAt(arg0, arg1, arg2);
if (arg2 == 2){
entity.getAttributes().get(arg1).setImportedType(arg0);
}
}
}
private class TableModelTyp extends AbstractTableModel{
private String [][] entity=null;
public void setEntity(String [][] entity){
this.entity = entity;
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 1;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return entity.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if(columnIndex==0)
return entity[rowIndex][1];
return null;
}
public String getColumnName(int column) {
if(column==0)
return "Typ";
else if (column!=0);
return ".Typ";
}
}
}
package view.dialogs.checkDatatypeDialogs;
import java.awt.Color;
import java.awt.Component;
import java.util.LinkedList;
import java.util.List;
import javax.swing.Box;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import model.program.Attribute;
import model.program.Entity;
import model.program.SourceEntity;
import model.utilities.ModelUtilities;
public class CheckDialog extends JDialog{
private JList databasetype;
private JList typtype;
private JTable tableTypeDatabase=new JTable();
private JTable tableTypeTyp=new JTable();
private TableModelDatabase model=new TableModelDatabase();
private TableModelTyp model2=new TableModelTyp();
public CheckDialog(JFrame owner,String [][] datatype,SourceEntity typdatatype)
{
super(owner);
this.setName("Check DataType");
model.setEntity(typdatatype);
model2.setEntity(datatype);
tableTypeDatabase.setModel(model);
tableTypeTyp.setModel(model2);
this.setSize(350,200);
if (owner != null){
int x = (owner.getWidth() - this.getWidth()) / 2;
int y = (owner.getHeight() - this.getHeight()) / 2;;
this.setLocation(x, y);
}
Box top=Box.createVerticalBox();
top.add(Box.createVerticalStrut(30));
Box table1=Box.createHorizontalBox();
top.add(table1);
table1.add(tableTypeDatabase);
top.add(Box.createHorizontalStrut(30));
table1.add(tableTypeTyp);
JPanel panel = new JPanel();
panel.add(top);
getContentPane().add(panel);
this.setVisible(true);
}
private class TableModelDatabase extends AbstractTableModel{
/**
*
*/
private static final long serialVersionUID = 1L;
private SourceEntity entity = null;
private String [] columnName={"Database"};
public void setEntity(SourceEntity entity){
this.entity = entity;
}
public int getColumnCount() {
return 1;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 2){
return true;
}
return false;
}
public int getRowCount() {
if (entity != null){
return entity.getAttributes().size();
}else{
return 1;
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
if (entity != null){
Attribute attribute = entity.getAttributes().get(rowIndex);
if (columnIndex == 0){
return attribute.getOriginalType();
}else if (columnIndex == 1){
return attribute.getOriginalType();
}else{
return attribute.getImportedType();
}
}else{
return null;
}
}
public String getColumnName(int column) {
return columnName[0];
}
//Selezionare il tipo con menu a tendina
@Override
public void setValueAt(Object arg0, int arg1, int arg2) {
super.setValueAt(arg0, arg1, arg2);
if (arg2 == 2){
entity.getAttributes().get(arg1).setImportedType(arg0);
}
}
}
private class TableModelTyp extends AbstractTableModel{
private String [][] entity=null;
public void setEntity(String [][] entity){
this.entity = entity;
}
@Override
public int getColumnCount() {
// TODO Auto-generated method stub
return 1;
}
@Override
public int getRowCount() {
// TODO Auto-generated method stub
return entity.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if(columnIndex==0)
return entity[rowIndex][1];
return null;
}
public String getColumnName(int column) {
if(column==0)
return "Typ";
else if (column!=0);
return ".Typ";
}
}
}