已有101人关注
关于高级部分jtable的一个问题
发表在Java图书答疑 2015-06-17
是否精华
版块置顶:
   java入门到精通,高级部分383页左右,学习完后自己想写个程序,使用eclipse。程序包含2部分。
sps实现读取处理数据,并展现在ejtable的jtable中。
问题:1 eclipse2个java文件如何访问?只能通过sps()实例化吗?如果是这样,我程序设计的sps按钮事件触发并取值到ejtable中,思路就是要重写并覆盖ejtable中的jtable所有方法吗?

2.书中提到的JFilechooser 如何实现打开目录位置为最近一次选择的目录功能?

3.写这个程序中碰到最头痛的问题就是 方法或类之间变量引用的问题,目前因为太菜,我干脆声明成全局变量,但又一个问题来了,如何在ejtable中引用sps的全局变量呢?

java入门到精通这本书很实用,但比较困惑的问题是使用eclipse和netbeans后,遇到没有编辑器的环境写代码,简直就没办法提笔,这点在如何学好java中要有一些经验性的提示就好了。

感谢回复先。
分享到:
精彩评论 3
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-06-18
沙发
1.你是想通过按钮的动作,来向表格插入数据吗?两个Java之间互相访问只能通过new实例化或者直接调用static静态方法互相调用。ejtable中的方法可以直接调用,不需要在sps中覆盖。
2.JFilechooser本身就有这个功能。除非你关闭整个程序。如果想关闭之后再打开还能打开指定文件,可以记录上一次选择的地址,然后再程序运行时,给空间指定打开的位置,例如:new JFileChooser("C:\Users\Administrator\Desktop");//打开桌面位置
3.如果成员变量是用public修饰的,直接用"对象.属性"的语法获取。正常开发规则中,每个类的非静态属性,都应该是用private修饰的,所以每个属性都应该手动添加有对应的get、set方法,使用getXXX()就可以获取属性值。开发时,可以使用eclipse自带的添加get、set功能:菜单栏选择Source->Generate Getters and Setters...->选中所有属性点确定。
4.过于依赖IDE开发环境确实会成为技术人员的短板,我们也希望所有的读者能脱离任何开发环境,来学习Java技术。但IDE开发环境带来的便捷是非常明显的,大大的提高了开发效率,在开发工作中,我们要多用开发环境,在学习研究中,我们要脱离开发环境。
diff1982
学分:0 LV1
2015-06-25
板凳
首先感谢回答,而且也按照之前提到的思路 重新改了很多次,但还是卡在了按钮动作向jtable这部了,唉 无奈 问题还不能结贴,还得来请教一下,感谢回答先。
这次我使用的是netbeans,图形界面更容易控制些。 
ejTable.java中的jtable默认定制代码:

jTable1 = new javax.swing.JTable();

jTable1.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null},
        {null, null, null, null, null, null, null}
    },
    new String [] {
        "A", "B", "C", "D", "E", "F", "G"
    }
) {
    Class[] types = new Class [] {
        java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
    };

    public Class getColumnClass(int columnIndex) {
        return types [columnIndex];
    }
});

jTable1.setColumnSelectionAllowed(true);


jScrollPane1.setViewportView(jTable1);

jTable1.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
if (jTable1.getColumnModel().getColumnCount() > 0) {
    jTable1.getColumnModel().getColumn(0).setResizable(false);
    jTable1.getColumnModel().getColumn(1).setResizable(false);
    jTable1.getColumnModel().getColumn(2).setResizable(false);
    jTable1.getColumnModel().getColumn(3).setResizable(false);
    jTable1.getColumnModel().getColumn(4).setResizable(false);
    jTable1.getColumnModel().getColumn(5).setResizable(false);
    jTable1.getColumnModel().getColumn(6).setResizable(false);
}

sps.java中的按钮事件:
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
        // 按钮事件:  
      
        Vector<Vector<Object>> rowData = new Vector<Vector<Object>>();      
        rowData = vs2;
        Vector<String> columnNames = new Vector<String>();
        columnNames.add("A");
        columnNames.add("B");
        columnNames.add("C");
        columnNames.add("D");
        columnNames.add("E");
        columnNames.add("F");
        columnNames.add("G");
        //使用vector构造jtable模型  vs2 数据在单步调试中已准备完毕。        

        
        try {
            Calculate(jTextField1.getText(),jTextField2.getText(),jTextField3.getText());
        } catch (IOException ex) {
            Logger.getLogger(sps.class.getName()).log(Level.SEVERE, null, ex);
        }
        ejTable ejt = new ejTable();
        JTable jTable1 = new JTable();
        jTable1.setModel(new javax.swing.table.DefaultTableModel(rowData,columnNames));

请麻烦指点一下 是哪里的逻辑出了问题,为何表格取不到值呢? 程序无报错@ @ 
再次感谢指点@ @        
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-06-26
地板
你这个例子是那本书上的?

现在我们不支撑书本内容以外的程序,如果希望了解更多内容,可以加入我们读者的交流群:

 C#技术交流群:385235151
 PHP技术交流群:366241699
 ANDROID技术交流群: 201161956
 VC/C/C++技术交流群:365354473
 JAVA/JAVAWEB技术交流群: 106933614
 VB技术交流群:413719807
 其他群:451936523
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照