貌似是你没有设置JPanel的Layout导致的
问一下add(jp);这个哪里来的方法啊/?

解决方案 »

  1.   

    add是Menu里的方法,Menu继承JFrame
    我写了setLayout
      

  2.   

    public class Pro_Main extends JFrame{


    private Container con;
    private JMenuBar bar;
    private JMenu systemMenu;
    private JMenu infMenu;
    private JMenu enterMenu;
    private JMenu printMenu;


    Pro_Main()
    {
    this.init();
    }
    public void init()
    {

    this.setSize(1000, 730);
    systemMenu = new JMenu("系统消息");
    infMenu = new JMenu("基本信息");
    enterMenu = new JMenu("消费指数");
    printMenu = new JMenu("各项费用报表");
    con = getContentPane();
    bar = new JMenuBar();
    bar.add(systemMenu);
    bar.add(infMenu);
    bar.add(enterMenu);
    bar.add(printMenu);

    this.setJMenuBar(bar);

    this.setBackground(Color.red);
    this.setVisible(true);
    this.setResizable(false);
    this.setLocationRelativeTo(null);
    this.setLayout(null);
    JPanel jp = new Pro_BuildingInfo();
    jp.setLayout(null);
    this.add(jp);
    }
    public static void main(String[] args) {
    try
        {
        BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.translucencyAppleLike;
            org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
            UIManager.put("RootPane.setupButtonVisible", false);
            BeautyEyeLNFHelper.translucencyAtFrameInactive = false;
         
        }
        catch(Exception e)
        {
            //TODO exception
         e.printStackTrace();
        }
        new Pro_Main();
    }
    }
      

  3.   


    public class Pro_BuildingInfo extends JPanel implements ActionListener{
    private static final long serialVersionUID = -5742054911590333204L;
    Object a[][];

    private JTable table;
    private String title[] = {"小区编号","小区名称","楼宇编号","楼宇层数","产权面积","楼宇高度","类型","状态" 
    };
    private DefaultTableModel mm;
    private ArrayList<Vector> listSum;
    private Vector list;
    private Pro_I_BuildingInfo proB;
    private JButton queryButton;
    private JPanel jps;
    private JPanel jpb;
    private JTextField option;
    private JTextField jtpage;
    private Page page;

    private JButton addButton;
    private JButton changeButton;
    private JButton deleteButton;
    private JButton renewButton;
    private JButton updateButton;
    private JButton NextButton;
    private JButton PriorButton;
    private JButton jumpButton;
    private JScrollPane jsp;
    private JLabel jlPageTotal;
    private JLabel jlPageNow;

    private JComboBox jcb1=null;


    public Pro_BuildingInfo() {

    listSum = new ArrayList<Vector>();
    proB = new Pro_C_BuildInfo();
    String options[]= {"小区编号","小区名称","楼宇编号","类型","状态","所有"};
    jcb1=new JComboBox(options);
    jtpage = new JTextField();
    jpb = new JPanel();
    setSize(600, 700);

    option = new JTextField();
    jcb1.addActionListener(this);

    queryButton = new JButton("查询");
    addButton = new JButton("添加");
    changeButton = new JButton("修改");
    deleteButton = new JButton("删除");
    renewButton = new JButton("重置");
    updateButton = new JButton("更新");
    NextButton= new JButton("下一页");
    PriorButton = new JButton("上一页");
    jumpButton = new JButton("跳转");
    jlPageNow = new JLabel();
    jlPageTotal = new JLabel();

    jpb.setLayout(null);

    NextButton.setBounds(230, 10, 60, 30);
    PriorButton.setBounds(293,10,60,30);
    jtpage.setBounds(360,10,60,30);
    jumpButton.setBounds(430, 10, 60, 30);
    jlPageNow.setBounds(60, 10, 70, 30);
    jlPageTotal.setBounds(140, 10, 70, 30);
    addButton.setBounds(95, 100, 80, 30);
    changeButton.setBounds(185, 100, 80, 30);
    deleteButton.setBounds(275, 100, 80, 30);
    renewButton.setBounds(365, 100, 80, 30);
    addButton.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    changeButton.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    deleteButton.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    renewButton.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    addButton.addActionListener(this);
    changeButton.addActionListener(this);
    deleteButton.addActionListener(this);
    renewButton.addActionListener(this);
    NextButton.addActionListener(this);
    PriorButton.addActionListener(this);
    jumpButton.addActionListener(this);
    jtpage.addActionListener(this);


    jps = new JPanel();
    jps.setLayout(null);
    jpb.setBounds(0,450,600,150);
    jcb1.setBounds(30, 4, 100, 30);
    option.setBounds(140, 4, 230, 30);
    queryButton.setUI(new BEButtonUI().setNormalColor(BEButtonUI.NormalColor.green));
    queryButton.addActionListener(this);
    queryButton.setBounds(450, 4, 80, 30);
    add(queryButton);

    option.addActionListener(this);
    jps.add(option);
    jps.add(jcb1);

    jps.setBounds(0, 0, 600, 40);

    jpb.add(addButton);
    jpb.add(changeButton);
    jpb.add(deleteButton);
    jpb.add(renewButton);
    jpb.add(updateButton);
    jpb.add(NextButton);
    jpb.add(jumpButton);
    jpb.add(PriorButton);
    jpb.add(jtpage);
    jpb.add(jlPageNow);
    jpb.add(jlPageTotal);
    add(jpb);
    setSize(600, 700);

    a = new Object[30][8];

        
    page = new Page();

        jsp = new JScrollPane(this.tableView(1));
        //jsp.add(this.tableView(1));
        jsp.setBounds(0, 40, 600,450);
    add(jsp);
    add(jps);
    setLayout(null);
    setVisible(true);
    // TODO Auto-generated constructor stub
    } @Override
    public void actionPerformed(ActionEvent e) {
    if(e.getSource() == NextButton)
    {
    page.setpageNo(page.getPageNo()+1);
    this.tableView(3);

    }
    // TODO Auto-generated method stub



    //System.out.println("22222222");


    if(e.getSource() == PriorButton)
    {
                page.setpageNo(page.getPageNo()-1);
                this.tableView(3);
               
    }
    if(e.getSource() == jumpButton)
    {
    int a = Integer.valueOf(jtpage.getText());
    page.setpageNo(a);
    this.tableView(3);

    }
    if(e.getSource() == addButton)
    {
    new Pro_AddBuilding(this);
    }
    if(e.getSource() == deleteButton)
    {
    int row =  table.getSelectedRow();
    String ID = (String)table.getValueAt(row, 0);

    String BIB =  (String)table.getValueAt(row, 2);
    proB.deleteBuildInfo(ID, BIB);
    this.tableView(2);
    }
    if(e.getSource() == changeButton)
    {
    int row =  table.getSelectedRow();
    System.out.println(row);
    if(row<0)
    {
    JOptionPane.showMessageDialog(null, "必须选中一列修改", "标题",JOptionPane.ERROR_MESSAGE);  
    }
    else{
    String ID = (String)table.getValueAt(row, 0);

    String CID = ID;
    String BIB =  (String)table.getValueAt(row, 2);
    int FloorNum = Integer.valueOf( (String)table.getValueAt(row, 3));
    double Area = Double.valueOf((String)table.getValueAt(row, 4));
    double Height = Double.valueOf((String)table.getValueAt(row, 5));
    String Type = (String)table.getValueAt(row, 6);
    String Status = (String)table.getValueAt(row, 7);

    new Pro_UpdateBuilding(CID, BIB, FloorNum, Area, Height, Type, Status,this);


    }
    }

    if(e.getSource() == queryButton)
    {
    String options = option.getText();
    if(jcb1.getSelectedIndex() == 0)
    {
    //System.out.println("CVVVVVVVVVVV");
    listSum = proB.queryByCID(options);
    this.tableView(2);
    //{"小区编号","小区名称","楼宇编号","类型","状态"};
    }
    if(jcb1.getSelectedIndex() == 1)
    {


            
    listSum = proB.queryByComName(options);
    this.tableView(2);

    }
    if(jcb1.getSelectedIndex() == 2)
    {

    listSum = proB.queryByBID(options);

    this.tableView(2);
    }
    if(jcb1.getSelectedIndex() == 3)
    {
    System.out.println("LLLLLLLLLLL");
    listSum = proB.queryByType(options);
    this.tableView(2);
    }
    if(jcb1.getSelectedIndex() == 4)
    {
     
    listSum = proB.queryByStatus(options);
    this.tableView(2);
    }
    if(jcb1.getSelectedIndex() == 5)
    {
     
        listSum = proB.queryAllBypage(page.getBegin(), page.getPageSize());
    this.tableView(3);
    }
    }
    // TODO Auto-generated method stub

    }

    public JTable tableView(int flag)
    {
    if(flag == 1){
    table = new JTable(10,4);
    mm = new DefaultTableModel(title,0);

    page.setLen(proB.getTotalCount());
         page.setPageSize(12);
        page.setpageNo(1);
        System.out.println(page.getBegin()+"SSSSSSSSS"+page.getPageNo());
        listSum = proB.queryAllBypage(page.getBegin(), page.getPageSize());
        jlPageTotal.setText("共有"+page.getPageCount()+"页");
     jlPageNow.setText("现在是第"+page.getPageNo()+"页");
    String[] b;
     for(int i = 0;i<listSum.size();i++)
    {

     list =  listSum.get(i);
     b =new String[list.size()];
    //System.out.println(list.size()+"Vec");
    for(int j = 0;j<list.size();j++)
    {
         b[j] = (String) list.get(j);

    }
    mm.addRow(b);

    }
     table.setModel(mm);
     validate();



      
       // System.out.println(page.getPageNo()+"SSS");
    }


    else if(flag == 2)
    {
    mm.fireTableDataChanged();
    while(mm.getRowCount()>0){
    mm.removeRow(mm.getRowCount()-1);
     }
    String[] b;
     for(int i = 0;i<listSum.size();i++)
    {

     list =  listSum.get(i);
     b =new String[list.size()];
    //System.out.println(list.size()+"Vec");
    for(int j = 0;j<list.size();j++)
    {
         b[j] = (String) list.get(j);
         System.out.println(b[j]);

    }
    mm.addRow(b);

    }
     table.setModel(mm);
     table.setCellSelectionEnabled(false);
     table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
     table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
     jsp.setViewportView(table);
     NextButton.setVisible(false);
     jumpButton.setVisible(false);
     PriorButton.setVisible(false);
     jtpage.setVisible(false);
     jlPageNow.setVisible(false);
     jlPageTotal.setVisible(false);

    //  JScrollPane jsp1;
    // jsp1 = new JScrollPane(table);
     validate();

    }
    else if(flag == 3)
    {
    mm.fireTableDataChanged();
    while(mm.getRowCount()>0){
    mm.removeRow(mm.getRowCount()-1);
     }
    page.setLen(proB.getTotalCount());
     listSum = proB.queryAllBypage(page.getBegin(), page.getPageSize());
     jlPageTotal.setText("共有"+page.getPageCount()+"页");
     jlPageNow.setText("现在是第"+page.getPageNo()+"页");
    String[] b;
     for(int i = 0;i<listSum.size();i++)
    {

     list =  listSum.get(i);
     b =new String[list.size()];
    //System.out.println(list.size()+"Vec");
    for(int j = 0;j<list.size();j++)
    {
         b[j] = (String) list.get(j);

    }
    mm.addRow(b);

    }
     table.setModel(mm);
     validate();
     NextButton.setVisible(true);
     jumpButton.setVisible(true);
     PriorButton.setVisible(true);
     jtpage.setVisible(true);
     jlPageNow.setVisible(true);
     jlPageTotal.setVisible(true);

    }
    //System.out.println(page.getBegin());

    //System.out.println("QQQQQQQQ");
    jlPageTotal.setText("共有"+page.getPageCount()+"页");
    jlPageNow.setText("现在是第"+page.getPageNo()+"页");

     TableColumn Column1 = table.getColumnModel().getColumn(6);
     TableColumn Column2 = table.getColumnModel().getColumn(2);
     TableColumn Column3 = table.getColumnModel().getColumn(3);
     Column2.setPreferredWidth(55);
     Column1.setPreferredWidth(40);
     Column3.setPreferredWidth(55);
    //System.out.println("SSSSSSSSSSSSSSSSSSS");
    return table;

    }}
      

  4.   

    楼主没事吧,layout设成null干嘛?
      

  5.   

    用setBounds绝对定位啊,没看到你的setBounds啊
      

  6.   

    首先你这个问题是 事件调度线程 产生的,不是 main线程产生的;其次,你这个错误异常提到了一个排序问题,也就是说你某个类用到了SortingFocusTraversalPolicy,可以检查下那个地方是否提供了Comparator的实现;
    如果没有,你尝试Pro_BuildingInfo实现Comparable接口;