标签:内部 int void public JTable new class
内部类
内部类可以分为四类:普通内部类、静态内部类、匿名内部类、局部内部类
普通内部类:
public class a { class Student{ } }
内部类可以直接访问外部类的成员,包括私有成员。
外部类要访问内部类的成员必须要建立内部类的对象
局部内部类:定义在某个局部范围中的类,其有效范围只限于方法内部
public class a { int outer = 10; public void outer(){ System.out.println("外部类"); } public void aa(){ class Inner{ int inner = 120; public void inner(){ System.out.println("内部类"); System.out.println(outer); outer(); } } //创建局部内部类对象 Inner a = new Inner(); System.out.println(a.inner); a.inner(); } } public class aTest { public static void main(String[] args) { a a = new a(); a.aa(); } }
只需要创建外部类对象,调用所属方法即可访问局部内部类
静态内部类:使用static关键字修饰的成员内部类
public class a { static int outer = 10; static class Inner{ int inner = 120; public void innerMethod(){ System.out.println("内部类成员变量"+inner); System.out.println("外部类成员变量"+outer); } } } public class aTest { /* 静态内部类 外部类名.内部类名 对象名 = new 外部类名.内部类名(); */ public static void main(String[] args) { a.Inner inner = new a.Inner(); inner.innerMethod(); } }
匿名内部类:
匿名内部类其实就是没有名称的内部类
一个接口的实现类作为方法参数传入,而是直接通过匿名内部类的形式传入一个接口类型参数,在匿名内部类中直接完成方法的实现
public interface Animal { public abstract void breach(); } public class aTest { /* 等号右边是匿名内部类,定义并创建该接口的子类对象 等号左边是多态赋值,接口类型引用指向子类对象 */ public static void main(String[] args) { Animal a = new Animal(){ @Override public void breach() { System.out.println("aaa"); } }; a.breach(); } }
JTable
JTable可以以表格的形式显示数据和编辑数据
JTable这个对象不能存储数据,他只管数据的表现
public class KCBData implements TableModel { private String[] title = {"周一","周二","周三","周四","周五","周六","周七"}; private String[][] data = new String[8][7]; public KCBData(){ for (int i = 0; i <data.length; i++) { for (int j=0; j<data[i].length; j++) { data[i][j] = ""; } } } @Override public int getRowCount() { return 8; } @Override public int getColumnCount() { return 7; } @Override public String getColumnName(int columnIndex) { return title[columnIndex]; } @Override public Class<?> getColumnClass(int columnIndex) { return String.class; } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } @Override public Object getValueAt(int rowIndex, int columnIndex) { return data[rowIndex][columnIndex]; } @Override public void setValueAt(Object aValue, int rowIndex, int columnIndex) { data[rowIndex][columnIndex] = (String)aValue; } @Override public void addTableModelListener(TableModelListener l) { } @Override public void removeTableModelListener(TableModelListener l) { } } 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); } }
搜索
复制
标签:内部,int,void,public,JTable,new,class 来源: https://www.cnblogs.com/pengtianyang/p/16368863.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。