这个是 上传图  但是下面应该有一个JTable 的才对 但是不显示3楼放源码

解决方案 »

  1.   


    这图 是我把 构造函数的 setLayout(null) 注释了 的效果。
    //setLayout(null);3楼放源码 
      

  2.   


    package nc.ui.rt.rt01;import java.awt.Color;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.FocusEvent;
    import java.awt.event.FocusListener;
    import java.io.File;import javax.swing.JButton;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.JTextArea;
    import javax.swing.table.DefaultTableModel;public class ImportInvCostUI extends JPanel implements FocusListener {
    class IvjEventHandler implements ActionListener { final ImportInvCostUI this$0; public void actionPerformed(ActionEvent e) { } IvjEventHandler() {
    this$0 = ImportInvCostUI.this;
    }
    } IvjEventHandler ivjEventHandler; private JLabel ivjJLabelSelect; private JLabel ivjJLabelTitle; private JPanel ivjJPanel1; private JTextArea ivjSrcFilePath; private JButton ivjBtnReset; private JButton ivjBtnBrowseSrc; private JButton ivjBtnImport; private String m_sysDate; private File file = null;
    // 表格
    private JTable ivtable;
    // 滚动条
    private JScrollPane scrollPane; // 接口实现
    // private IRt01 irt01;
    // private IRt01 getFn_itf() {
    // if (irt01 == null)
    // irt01 = (IRt01) NCLocator.getInstance().lookup(
    // IRt01.class.getName());
    // return irt01;
    // }
    public ImportInvCostUI() { ivjBtnBrowseSrc = null;
    ivjEventHandler = new IvjEventHandler();
    ivjJLabelSelect = null;
    ivjJLabelTitle = null;
    ivjJPanel1 = null;
    ivjSrcFilePath = null;
    ivjBtnReset = null;
    ivjBtnImport = null;
    m_sysDate = null;
    ivtable = null;
    scrollPane = null;
    initialize();
    // System.out.println((new StringBJlder("<<<<<<<<<<<<<<<<<")).append(
    // m_sysDate).append(">>>>>>>>>>>>>>").toString());
    } private JTable getTableDS() {
    if (ivtable == null) {
    String[] headers = { "公司编码", "部门编码", "存货编码", "客户编码", "结算方式编码",
    "成本1", "成本2" };
    Object[][] cellData = null;
    DefaultTableModel model = new DefaultTableModel(cellData, headers) {
    public boolean isCellEditable(int row, int column) {
    return false;
    }
    };
    ivtable = new JTable(model);
    ivtable.setName("TableDS");
    ivtable.setBounds(39, 115, 750, 290);
    ivtable.setRowHeight(20);
    ivtable.setSelectionMode(0);
    // ivtable.setPreferredScrollableViewportSize(new
    // Dimension(550,30));
    }
    return ivtable;
    } private JButton getBtnBrowseSrc() {
    if (ivjBtnBrowseSrc == null) {
    try {
    ivjBtnBrowseSrc = new JButton();
    ivjBtnBrowseSrc.setName("BtnBrowseSrc");
    ivjBtnBrowseSrc.setText("浏览");
    ivjBtnBrowseSrc.setBounds(617, 82, 80, 22);
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    }
    return ivjBtnBrowseSrc;
    } private JLabel getJLabelSelect() {
    if (ivjJLabelSelect == null) {
    try {
    ivjJLabelSelect = new JLabel();
    ivjJLabelSelect.setName("JLabelSelect");
    ivjJLabelSelect.setFont(new Font("dialog", 1, 12));
    ivjJLabelSelect.setText("选择文件");
    ivjJLabelSelect.setBounds(39, 78, 69, 19);
    ivjJLabelSelect.setForeground(new Color(102, 102, 153));
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    }
    return ivjJLabelSelect;
    } private JLabel getJLabelTitle() {
    if (ivjJLabelTitle == null) {
    try {
    ivjJLabelTitle = new JLabel();
    ivjJLabelTitle.setName("JLabelTitle");
    ivjJLabelTitle.setFont(new Font("dialog", 1, 22));
    ivjJLabelTitle.setText("上传Excel存货成本");
    ivjJLabelTitle.setBounds(248, 44, 307, 21);
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    }
    return ivjJLabelTitle;
    } private JPanel getJPanel1() {
    if (ivjJPanel1 == null) {
    try {
    ivjJPanel1 = new JPanel();
    ivjJPanel1.setName("JPanel1");
    ivjJPanel1.setLayout(null);
    ivjJPanel1.setBounds(-10, -1, 784, 1);
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    }
    return ivjJPanel1;
    } private JTextArea getSrcFilePath() {
    if (ivjSrcFilePath == null) {
    try {
    ivjSrcFilePath = new JTextArea();
    ivjSrcFilePath.setName("srcFilePath");
    ivjSrcFilePath.setBounds(116, 80, 475, 24);
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    }
    return ivjSrcFilePath;
    } public String getTitle() {
    return "存货成本导入";
    } private void handleException(Throwable exception) {
    System.out.println("--------- 未捕捉到的异常 ---------");
    exception.printStackTrace(System.out);
    } // 初始化监听
    private void initConnections() throws Exception {
    getBtnBrowseSrc().addActionListener(ivjEventHandler);
    getBtnReset().addActionListener(ivjEventHandler);
    getBtnImport().addActionListener(ivjEventHandler);
    } private void initialize() {
    try {
    setName("EAIDataTrafficJ");
    //setLayout(null);
    setSize(839, 464);
    add(getJPanel1(), getJPanel1().getName());
    add(getJLabelSelect(), getJLabelSelect().getName());
    add(getSrcFilePath(), getSrcFilePath().getName());
    add(getBtnBrowseSrc(), getBtnBrowseSrc().getName());
    add(getJLabelTitle(), getJLabelTitle().getName());
    add(getBtnReset(), getBtnReset().getName());
    add(getBtnImport(), getBtnImport().getName());
    add(getTableDS(), getTableDS().getName());
    add(getJScrollPane(), getJScrollPane().getName());
    initConnections();
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    } private JScrollPane getJScrollPane() {
    if (scrollPane == null) {
    scrollPane = new JScrollPane(getTableDS());
    // scrollPane.getViewport().add(ivtable);
    // scrollPane.setBorder(new BevelBorder(BevelBorder.));
    scrollPane.setName("scrollPane");
    }
    return scrollPane;
    } // public static void main(String args[]) {
    // try {
    // JFrame frame = new JFrame();
    // importsaleorderJ EAIDataTrafficJ = new importsaleorderJ();
    // frame.setContentPane(EAIDataTrafficJ);
    // frame.setSize(EAIDataTrafficJ.getSize());
    // frame.addWindowListener(new WindowAdapter() {
    //
    // public void windowClosing(WindowEvent e) {
    // System.exit(0);
    // }
    //
    // });
    // frame.show();
    // Insets insets = frame.getInsets();
    // frame.setSize(frame.getWidth() + insets.left + insets.right, frame
    // .getHeight()
    // + insets.top + insets.bottom);
    // frame.setVisible(true);
    // } catch (Throwable exception) {
    // System.err.println("nc.J.pub.ToftPanel 的 main() 中发生异常");
    // exception.printStackTrace(System.out);
    // }
    // } private JPanel getClientJ() {
    return this;
    } private JButton getBtnReset() {
    if (ivjBtnReset == null) {
    try {
    ivjBtnReset = new JButton();
    ivjBtnReset.setName("BtnReset");
    ivjBtnReset.setText("重置");
    ivjBtnReset.setBounds(137, 469, 116, 25);
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    }
    return ivjBtnReset;
    } private JButton getBtnImport() {
    if (ivjBtnImport == null) {
    try {
    ivjBtnImport = new JButton();
    ivjBtnImport.setName("BtnImport");
    ivjBtnImport.setText("导入");
    ivjBtnImport.setBounds(504, 469, 116, 25);
    } catch (Throwable ivjExc) {
    handleException(ivjExc);
    }
    }
    return ivjBtnImport;
    } /**
     * Excel文件过滤类
     * 
     * @author jieely
     * 
     */
    class ExcelFileFilter extends javax.swing.filechooser.FileFilter {
    public boolean accept(File file) {
    if (file.isDirectory()
    || file.getPath().toLowerCase().endsWith(".xls"))
    return true;
    else
    return false;
    } public String getDescription() {
    return "数据文件(.xls)";
    }
    } public void focusGained(FocusEvent focusevent) {
    } public void focusLost(FocusEvent focusevent) {
    }
    }
      

  3.   


        private void initialize() {
            try {
                setName("EAIDataTrafficJ");
                //setLayout(null);   //如果注释了就是图2的效果,不注释就是图1的效果。
                setSize(839, 464);
                add(getJPanel1(), getJPanel1().getName());
                add(getJLabelSelect(), getJLabelSelect().getName());
                add(getSrcFilePath(), getSrcFilePath().getName());
                add(getBtnBrowseSrc(), getBtnBrowseSrc().getName());
                add(getJLabelTitle(), getJLabelTitle().getName());
                add(getBtnReset(), getBtnReset().getName());
                add(getBtnImport(), getBtnImport().getName());
                add(getTableDS(), getTableDS().getName());
                add(getJScrollPane(), getJScrollPane().getName());
                initConnections();
            } catch (Throwable ivjExc) {
                handleException(ivjExc);
            }
        }谁能帮我看看?
      

  4.   

     initialize()这个方法是JFrame的子类的么
    JFrame默认layout是BorderLayout,add控件时你不设置添加的位置默认就是中间
    也就是说你最后添加的会把前面添加的遮住
      

  5.   


    extends JPanel 我是继承了
      

  6.   


    那你的意思是 说 我先 把table放到 滚动面板里? 然后在把 滚动面板 放到 JPanel?
      

  7.   

    可以不这样做,
    public void add(Component comp,
                    Object constraints)
    第二个参数可以填写Borderlayout.xxxx
      

  8.   

        private void initialize() {
            try {
                setName("EAIDataTrafficJ");
                //setLayout(null);   //如果注释了就是图2的效果,不注释就是图1的效果。
                setSize(839, 464);
                add(getJPanel1(), getJPanel1().getName());
                add(getJLabelSelect(), getJLabelSelect().getName());
                add(getSrcFilePath(), getSrcFilePath().getName());
                add(getBtnBrowseSrc(), getBtnBrowseSrc().getName());
                add(getJLabelTitle(), getJLabelTitle().getName());
                add(getBtnReset(), getBtnReset().getName());
                add(getBtnImport(), getBtnImport().getName());
                add(getTableDS(), getTableDS().getName());
                add(getJScrollPane(), getJScrollPane().getName());
                initConnections();
            } catch (Throwable ivjExc) {
                handleException(ivjExc);
            }
        }
    这个。。
    话说你这add方法自己写的?没见有第一个参数是Component第二个参数是String的
    用这个就行了
    add
    public void add(Component comp,
                    Object constraints)将指定的组件添加到此容器的尾部。同时通知布局管理器使用指定的 constraints 对象将组件添加到此容器的布局中。对于 addImpl(java.awt.Component, java.lang.Object, int) 来说,这是一种便捷的方法。 
    注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。 
    参数:
    comp - 要添加的组件
    constraints - 表示此组件的布局约束的对象