我从表格里得到当前行的所有列值,请问现在如何将他传递到新打开的JFRAME里  int colummCount = table.getModel().getColumnCount();// 列数
  objs=new Object[colummCount];
 for (int i = 0; i < colummCount; i++)
        objs[i]=table.getModel().getValueAt(table.getSelectedRow(), i);   
新的窗口是inpt();new inpt().setVisible(true);

解决方案 »

  1.   

    要么就重载构造函数,参数就是你的数据数组;或者直接提供个set方法,把数据设置进去呗。
      

  2.   

    有代码吗?或者给个例子
       public Object[] getobjs()
        {
            int colummCount = table.getModel().getColumnCount();// 列数 objs=new Object[colummCount];
     for (int i = 0; i < colummCount; i++)
            objs[i]=table.getModel().getValueAt(table.getSelectedRow(), i);
     return objs;
        }
    我写了这个,不过不能用的
      

  3.   

    你这个只是将table中所选中的行数据弄出来了,并没有看到传递给JFrame的代码啊?
      

  4.   

    给你个简单例子参考下吧,是之前找了个东西改的。关于单元格自动求和的部分代码可以无视掉。主要看:
      JButton btnNewFrame = new JButton("Popup new JFrame");
    之后的相关内容。
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTable;
    import javax.swing.JToolTip;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;/**
     * 主窗口 
     */
    public class TestJTable extends JFrame {    private JTable table = new JTable(20, 6) {
            // 自定义ToolTips
            public JToolTip createToolTip() {
                JToolTip tip = super.createToolTip();
                tip.setLayout(new BorderLayout());
                tip.add(new JButton("Hello"), BorderLayout.NORTH);
                tip.add(new JButton("Hello"), BorderLayout.SOUTH);
                tip.setPreferredSize(new Dimension(300, 200));
                return tip;
            }
        };    public TestJTable() {
            this.setSize(800, 600);        // 预置ToolTip
            table.setToolTipText("");        // 借助事件监听,实现单元格自动计算 6=4+5
            table.getModel().addTableModelListener(new TableModelListener() {
                public void tableChanged(TableModelEvent e) {
                    int col = e.getColumn();
                    int row = e.getFirstRow();
                    if (col == 3 || col == 4) { // 因为列数从0开始算,所以要减一
                        double v4 = 0;
                        try {
                            v4 = Double.valueOf(String.valueOf(table.getValueAt(row, 3)));
                        } catch (NumberFormatException ex) {
                        }
                        double v5 = 0;
                        try {
                            v5 = Double.valueOf(String.valueOf(table.getValueAt(row, 4)));
                        } catch (NumberFormatException ex) {
                        }
                        table.setValueAt(v4 + v5, row, 5);
                    }
                }
            });
            this.add(table, BorderLayout.CENTER);        // 弹出新窗口,显示所选中行的数据
            JButton btnNewFrame = new JButton("Popup new JFrame");
            btnNewFrame.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    // 先获得所选中行的数据
                    Object[] data = getSelectedRowData();
                    // 构造弹出窗口,并将数据传递进去
                    PopupFrame frm = new PopupFrame(data);
                    // 显示该窗口
                    frm.setVisible(true);
                }
            });
            this.add(btnNewFrame, BorderLayout.SOUTH);
        }    public Object[] getSelectedRowData() {
            int colummCount = table.getModel().getColumnCount();// 列数
            Object[] objs = new Object[colummCount];
            for (int i = 0; i < colummCount; i++) {
                objs[i] = table.getModel().getValueAt(table.getSelectedRow(), i);
            }
            return objs;
        }    public static void main(String[] args) {
            TestJTable wnd = new TestJTable();
            wnd.setDefaultCloseOperation(EXIT_ON_CLOSE);
            wnd.setVisible(true);
        }}/**
     * 弹出窗口
     */
    class PopupFrame extends JFrame {
        public PopupFrame(Object[] data) {
            this.setSize(400, 300);
            this.setLayout(new FlowLayout());
            // 借助JLabel,循环把数据都显示出来
            for (int i = 0; i < data.length; i++) {
                JLabel lbl = new JLabel(String.valueOf(data[i])); 
                this.add(lbl);
            }
        }}