Advertisement
jdalbey

Chromosome Toolkit GUI Skeleton 1

Feb 26th, 2015
324
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.12 KB | None | 0 0
  1. import javax.swing.UIManager.LookAndFeelInfo;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.border.Border;
  5. import javax.swing.*;
  6. import javax.swing.text.*;
  7. /**
  8.  *  GUI for the chromosome toolkit application.
  9.  *  @author your name
  10.  *  @version 0.1
  11.  */
  12. public class GUIskeleton extends JFrame
  13. {
  14.  
  15.     private JMenuBar menuBar;
  16.     private JPanel mapPanel;
  17.     private JScrollPane mapScroller;
  18.     private JPanel sequencePanel;
  19.     private JPanel lookupPanel;
  20.     private JTextField lookupField;
  21.     private JEditorPane textPane;
  22.     private JPanel searchPanel;
  23.     private JTextField searchField;
  24.     private JPanel directionPanel;
  25.     private JButton nextBtn;
  26.     private JTable table;
  27.     private JPanel mapPrefsPanel;
  28.     private JMenuItem newmenu;
  29.     private JMenuItem openmenu;
  30.     private JMenuItem savemenu;
  31.     private JMenuItem exitmenu;
  32.     private JMenuItem addmenu;
  33.     private JMenuItem aboutmenu;
  34.  
  35.     /** Construct this GUI with a frame, menu, and panels
  36.      * for the map and sequence.
  37.      */
  38.     public GUIskeleton()
  39.     {
  40.  
  41.         setTitle("Chromosome Toolkit - Your Name Here");
  42.         generateMenu();
  43.         setJMenuBar(menuBar);
  44.  
  45.         //Create a panel to hold everything
  46.         JPanel contentPane = new JPanel(null);
  47.         contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.LINE_AXIS));
  48.         contentPane.setPreferredSize(new Dimension(900, 600));
  49.         contentPane.setBackground(new Color(192, 192, 192));
  50.  
  51.         mapPanel = new JPanel();
  52.         mapPanel.setBorder(BorderFactory.createEtchedBorder(1));
  53.         mapPanel.setLayout(new BoxLayout(mapPanel, BoxLayout.PAGE_AXIS));
  54.  
  55.         mapPanel.setBackground(new Color(214, 217, 223));
  56.         mapPanel.setForeground(new Color(0, 0, 0));
  57.         mapPanel.setEnabled(true);
  58.         mapPanel.setFont(new Font("DejaVu Sans", 0, 12));
  59.         mapPanel.setVisible(true);
  60.  
  61.         lookupPanel = new JPanel();
  62.         lookupPanel.add(new JLabel("Lookup:"));
  63.         lookupField = new JTextField(20);
  64.         lookupPanel.add(lookupField);
  65.  
  66.         mapPanel.add(lookupPanel);
  67.         table = new JTable();
  68.         table.setTableHeader(null); // hide column headers
  69.         table.setShowVerticalLines(true);
  70.         table.setPreferredScrollableViewportSize(new Dimension(500, 570));
  71.         table.setFillsViewportHeight(true);
  72.         table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  73.         table.setCellSelectionEnabled(false);
  74.         //Create the scroll pane and add the table to it.
  75.         mapScroller = new JScrollPane(table);
  76.         mapPanel.add(mapScroller);
  77.  
  78.         //Create the radio buttons.
  79.         mapPrefsPanel = new JPanel();
  80.  
  81.         JRadioButton fullsizeBtn = new JRadioButton("Full");
  82.         fullsizeBtn.setMnemonic(KeyEvent.VK_F);
  83.         fullsizeBtn.setActionCommand("Full");
  84.         fullsizeBtn.setSelected(true);
  85.  
  86.         JRadioButton compressedBtn = new JRadioButton("Compressed");
  87.         compressedBtn.setMnemonic(KeyEvent.VK_C);
  88.         compressedBtn.setActionCommand("Compressed");
  89.  
  90.         //Group the radio buttons.
  91.         ButtonGroup group = new ButtonGroup();
  92.         group.add(fullsizeBtn);
  93.         group.add(compressedBtn);
  94.  
  95.         mapPrefsPanel.add(fullsizeBtn);
  96.         mapPrefsPanel.add(compressedBtn);
  97.         mapPanel.add(mapPrefsPanel);
  98.  
  99.         sequencePanel = new JPanel();
  100.         sequencePanel.setBorder(BorderFactory.createEtchedBorder(1));
  101.         sequencePanel.setLayout(new BoxLayout(sequencePanel,
  102.                 BoxLayout.PAGE_AXIS));
  103.  
  104.         sequencePanel.setBackground(new Color(214, 217, 223));
  105.         sequencePanel.setForeground(new Color(0, 0, 0));
  106.         sequencePanel.setEnabled(true);
  107.         sequencePanel.setFont(new Font("DejaVu Sans", 0, 12));
  108.         sequencePanel.setVisible(true);
  109.  
  110.         textPane = new JEditorPane();  
  111.         textPane.setEditable(false);
  112.         textPane.setContentType("text/html");
  113.         //Put the editor pane in a scroll pane.
  114.         JScrollPane editorScrollPane = new JScrollPane(textPane);
  115.         editorScrollPane.setVerticalScrollBarPolicy(
  116.             JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  117.         editorScrollPane.setPreferredSize(new Dimension(100, 570));
  118.         editorScrollPane.setMinimumSize(new Dimension(10, 10));
  119.         sequencePanel.add(editorScrollPane);
  120.  
  121.         searchPanel = new JPanel();
  122.         searchPanel.add(new JLabel("Search:"));
  123.         searchField = new JTextField(20);
  124.         searchPanel.add(searchField);
  125.         sequencePanel.add(searchPanel);
  126.  
  127.         directionPanel = new JPanel();
  128.         nextBtn = new JButton("Next");
  129.         directionPanel.add(nextBtn);
  130.         sequencePanel.add(directionPanel);
  131.  
  132.         //adding components to contentPane panel
  133.         contentPane.add(mapPanel);
  134.         contentPane.add(sequencePanel);
  135.         contentPane.setOpaque(true);
  136.  
  137.         //adding panel to JFrame
  138.         getContentPane().add(contentPane);
  139.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  140.         setLocationRelativeTo(null);
  141.         pack();
  142.         setVisible(true);
  143.     }
  144.  
  145.     /** Create the menu items. */
  146.     private void generateMenu()
  147.     {
  148.         menuBar = new JMenuBar();
  149.  
  150.         JMenu file = new JMenu("File");
  151.         file.setMnemonic(KeyEvent.VK_F);        
  152.         JMenu edit = new JMenu("Edit");
  153.         edit.setMnemonic(KeyEvent.VK_E);
  154.         JMenu help = new JMenu("Help");
  155.         help.setMnemonic(KeyEvent.VK_H);
  156.  
  157.         newmenu = new JMenuItem("New    ");
  158.         newmenu.setMnemonic(KeyEvent.VK_N);
  159.         openmenu = new JMenuItem("Open   ");
  160.         openmenu.setMnemonic(KeyEvent.VK_O);
  161.         openmenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
  162.                 ActionEvent.CTRL_MASK));
  163.  
  164.         savemenu = new JMenuItem("Save As");
  165.         savemenu.setMnemonic(KeyEvent.VK_S);
  166.         exitmenu = new JMenuItem("Exit   ");
  167.         exitmenu.setMnemonic(KeyEvent.VK_E);
  168.         addmenu = new JMenuItem("Add ");
  169.         addmenu.setMnemonic(KeyEvent.VK_A);
  170.         aboutmenu = new JMenuItem("About   ");
  171.         aboutmenu.setMnemonic(KeyEvent.VK_T);
  172.         aboutmenu.addActionListener(new ActionListener()
  173.             {
  174.                 public void actionPerformed(ActionEvent e)
  175.                 {
  176.                     JOptionPane.showMessageDialog(null,
  177.                         "ChromosomeToolkit Ver 1.0");
  178.                 }
  179.             });        
  180.  
  181.         file.add(newmenu);
  182.         file.add(openmenu);
  183.         file.add(savemenu);
  184.         file.addSeparator();
  185.         file.add(exitmenu);
  186.         edit.add(addmenu);
  187.         help.add(aboutmenu);
  188.  
  189.         menuBar.add(file);
  190.         menuBar.add(edit);
  191.         menuBar.add(help);
  192.     }
  193.  
  194.     /** Local main for unit testing.
  195.      * @param args not used
  196.      */
  197.     public static void main(String[] args)
  198.     {
  199.         System.setProperty("swing.defaultlaf",
  200.             "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
  201.         javax.swing.SwingUtilities.invokeLater(new Runnable()
  202.             {
  203.                 public void run()
  204.                 {
  205.                     new GUIskeleton();
  206.                 }
  207.             });
  208.     }
  209.  
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement