Guest User

jtable/jscrollpane issues

a guest
Mar 7th, 2014
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.90 KB | None | 0 0
  1.  
  2. import java.awt.BorderLayout;
  3. import java.util.Arrays;
  4. import java.util.LinkedList;
  5. import java.util.List;
  6.  
  7. import javax.swing.JButton;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11. import javax.swing.JScrollPane;
  12. import javax.swing.JTabbedPane;
  13. import javax.swing.JTable;
  14. import javax.swing.SwingUtilities;
  15. import javax.swing.table.DefaultTableModel;
  16.  
  17. public class MyFrame extends JFrame{
  18.    
  19.     private JPanel panel1;
  20.     private JTabbedPane tabs;
  21.     private JButton runButton;
  22.    
  23.     public MyFrame(){
  24.         tabs = new JTabbedPane();
  25.         panel1 = new JPanel();
  26.         runButton = new JButton("go!");
  27.         runButton.addActionListener(new java.awt.event.ActionListener() {
  28.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  29.                 runButtonActionPerformed(evt);
  30.             }
  31.         });
  32.         panel1.add(runButton);
  33.         tabs.addTab("first tab", panel1);
  34.         this.add(tabs);
  35.         pack();
  36.     }
  37.    
  38.     public static void main(String args[]) {
  39.         try {
  40.             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
  41.                 if ("Nimbus".equals(info.getName())) {
  42.                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
  43.                     break;
  44.                 }
  45.             }
  46.         } catch (ClassNotFoundException ex) {
  47.             java.util.logging.Logger.getLogger(MyFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  48.         } catch (InstantiationException ex) {
  49.             java.util.logging.Logger.getLogger(MyFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  50.         } catch (IllegalAccessException ex) {
  51.             java.util.logging.Logger.getLogger(MyFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  52.         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
  53.             java.util.logging.Logger.getLogger(MyFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
  54.         }
  55.  
  56.         /* Create and display the form */
  57.         java.awt.EventQueue.invokeLater(new Runnable() {
  58.  
  59.             public void run() {
  60.                 MyFrame frame = new MyFrame();
  61.                 frame.setLocationRelativeTo(null);
  62.                 frame.setVisible(true);
  63.             }
  64.         });
  65.     }
  66.  
  67.     private void runButtonActionPerformed(java.awt.event.ActionEvent evt) {
  68.         /* Normally there is more stuff happening here
  69.          * but this much will do for the sake of example
  70.          */
  71.         List<String[]> data = new LinkedList<String[]>();
  72.         for(int i=1; i<1000;i++)
  73.             data.add(new String[]{"entry1", "value1", "value2", "value3"});
  74.        
  75.         SwingUtilities.invokeLater(new DataPreviewAction(data, tabs)); 
  76.     }
  77.    
  78.     public class DataPreviewAction implements Runnable {
  79.        
  80.         private JTabbedPane contentHolder;
  81.         private List<String[]> data;
  82.        
  83.         public DataPreviewAction(List<String[]> data, JTabbedPane comp){
  84.             this.contentHolder = comp;
  85.             this.data = data;
  86.         }
  87.  
  88.         @Override
  89.         public void run() {
  90.             DefaultTableModel previewModel = new DefaultTableModel(){
  91.                 @Override
  92.                 public boolean isCellEditable(int row, int column){
  93.                     return false;
  94.                 }};
  95.            
  96.             for(String[] datarow : data){
  97.                 previewModel.addRow(Arrays.copyOf(datarow, datarow.length, Object[].class));
  98.             }
  99.            
  100.             JTable table = new JTable(previewModel);
  101.            
  102.             JPanel buttonPanel = new JPanel();
  103.             buttonPanel.add(new JButton("A button"));
  104.             buttonPanel.add(new JLabel("Some description for the awesome table below "));
  105.             buttonPanel.add(new JButton("another button"));
  106.            
  107.             JScrollPane tablePanel = new JScrollPane(table);
  108.             JPanel container = new JPanel();
  109.             container.setLayout(new BorderLayout());
  110.             container.add(buttonPanel,BorderLayout.NORTH);
  111.             container.add(tablePanel,BorderLayout.CENTER);
  112.             contentHolder.addTab("Preview", container);
  113.             contentHolder.validate();
  114.             contentHolder.repaint();
  115.         }
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment