Advertisement
Guest User

Untitled

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