《2018年1月30日》【连续111天】
标题:MVC设计模式;
内容:
M:model V:view C:control 互相独立,其中,V和C无直接关系,也就是说用户对界面的操作与界面的表现无关,而是通过改变M来改变V;
优点:让每一个部分变得单纯;
其中,Java将V和C合并为JTable,M为TableModle;
示例:
课程表设计:
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
public class KCBData implements TableModel {
private String[] title = {"周一","周二","周三","周四","周五","周六","周日",};
private String[][] data =new String[8][7];
public KCBData() {
for(int i=0;i<8;i++) {
for(int j=0;j<7;j++) {
data[i][j]="";
}
}
}
@Override
public void addTableModelListener(TableModelListener arg0) {
// TODO Auto-generated method stub
}
@Override
public Class<?> getColumnClass(int arg0) {
return String.class;
}
@Override
public int getColumnCount() {
return 7;
}
@Override
public String getColumnName(int arg0) {
return title[arg0];
}
@Override
public int getRowCount() {
return 8;
}
@Override
public Object getValueAt(int arg0, int arg1) {
return data[arg0][arg1];
}
@Override
public boolean isCellEditable(int arg0, int arg1) {
return true;
}
@Override
public void removeTableModelListener(TableModelListener arg0) {
// TODO Auto-generated method stub
}
@Override
public void setValueAt(Object arg0, int arg1, int arg2) {
data[arg1][arg2] =(String)arg0;
}
}
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class KCB {
public static void main(String[] args) {
JFrame frame =new JFrame();
JTable table =new JTable(new KCBData());
JScrollPane pane =new JScrollPane(table);
frame.add(pane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
明日计划:学习;