有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java jTable在我创建的面板中不可见

我已经创建了我自己版本的面板,这样我就可以创建一些可拖动的表格,但目前没有任何东西添加到我创建的面板上

面板类:

import javax.swing.*;
import java.awt.event.*;
import java.awt.Dimension;
import java.awt.Point;

public class Workspace extends JPanel implements MouseListener,MouseMotionListener{
    private JTable t;
    private DatabaseHandler d;
    public Workspace(DatabaseHandler d ){
        super();
        this.d = d;
        setPreferredSize(new Dimension(1000, 1000));
        this.setLayout(null);
        addMouseListener(this);
        addMouseMotionListener(this);
    }

    public void load(String table){
        t = new JTable(d.getTable(table));
        //JScrollPane js=new JScrollPane(t);
        this.add(t);
    }
}

调用它的代码:

public class Display{
   private JPanel leftPanel = new JPanel(new BorderLayout());
   public JList list;
   public JFrame frame;
   private DatabaseHandler d = new DatabaseHandler("imdb");
   private Workspace w = new Workspace(d);

   public Display(){

       //create the window
       frame = new JFrame("FYP - Database Refactoring");
       frame.getContentPane().add(w, BorderLayout.CENTER);
       frame.setSize(1000,1000);
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       list = new JList(d.getTableNames());
       list.addMouseListener(new MouseAdapter(){
           public void mousePressed(MouseEvent e){
               JList l = (JList)e.getSource();
               w.load((String)l.getSelectedValue());
               frame.setVisible(true);
           }
       });
       leftPanel.add(list);
       JLabel l = new JLabel("workbench");
      w.add(l);
       frame.getContentPane().add(leftPanel, BorderLayout.LINE_START);
       frame.pack();
       frame.setVisible(true);
   }

   public static void main(String[] args) {
    new Display();
   }
}

任何帮助都将受到感谢


共 (0) 个答案