Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.UIManager.LookAndFeelInfo;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.border.Border;
- import javax.swing.*;
- import javax.swing.text.*;
- /**
- * GUI for the chromosome toolkit application.
- * @author your name
- * @version 0.1
- */
- public class GUIskeleton extends JFrame
- {
- private JMenuBar menuBar;
- private JPanel mapPanel;
- private JScrollPane mapScroller;
- private JPanel sequencePanel;
- private JPanel lookupPanel;
- private JTextField lookupField;
- private JEditorPane textPane;
- private JPanel searchPanel;
- private JTextField searchField;
- private JPanel directionPanel;
- private JButton nextBtn;
- private JTable table;
- private JPanel mapPrefsPanel;
- private JMenuItem newmenu;
- private JMenuItem openmenu;
- private JMenuItem savemenu;
- private JMenuItem exitmenu;
- private JMenuItem addmenu;
- private JMenuItem aboutmenu;
- /** Construct this GUI with a frame, menu, and panels
- * for the map and sequence.
- */
- public GUIskeleton()
- {
- setTitle("Chromosome Toolkit - Your Name Here");
- generateMenu();
- setJMenuBar(menuBar);
- //Create a panel to hold everything
- JPanel contentPane = new JPanel(null);
- contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.LINE_AXIS));
- contentPane.setPreferredSize(new Dimension(900, 600));
- contentPane.setBackground(new Color(192, 192, 192));
- mapPanel = new JPanel();
- mapPanel.setBorder(BorderFactory.createEtchedBorder(1));
- mapPanel.setLayout(new BoxLayout(mapPanel, BoxLayout.PAGE_AXIS));
- mapPanel.setBackground(new Color(214, 217, 223));
- mapPanel.setForeground(new Color(0, 0, 0));
- mapPanel.setEnabled(true);
- mapPanel.setFont(new Font("DejaVu Sans", 0, 12));
- mapPanel.setVisible(true);
- lookupPanel = new JPanel();
- lookupPanel.add(new JLabel("Lookup:"));
- lookupField = new JTextField(20);
- lookupPanel.add(lookupField);
- mapPanel.add(lookupPanel);
- table = new JTable();
- table.setTableHeader(null); // hide column headers
- table.setShowVerticalLines(true);
- table.setPreferredScrollableViewportSize(new Dimension(500, 570));
- table.setFillsViewportHeight(true);
- table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- table.setCellSelectionEnabled(false);
- //Create the scroll pane and add the table to it.
- mapScroller = new JScrollPane(table);
- mapPanel.add(mapScroller);
- //Create the radio buttons.
- mapPrefsPanel = new JPanel();
- JRadioButton fullsizeBtn = new JRadioButton("Full");
- fullsizeBtn.setMnemonic(KeyEvent.VK_F);
- fullsizeBtn.setActionCommand("Full");
- fullsizeBtn.setSelected(true);
- JRadioButton compressedBtn = new JRadioButton("Compressed");
- compressedBtn.setMnemonic(KeyEvent.VK_C);
- compressedBtn.setActionCommand("Compressed");
- //Group the radio buttons.
- ButtonGroup group = new ButtonGroup();
- group.add(fullsizeBtn);
- group.add(compressedBtn);
- mapPrefsPanel.add(fullsizeBtn);
- mapPrefsPanel.add(compressedBtn);
- mapPanel.add(mapPrefsPanel);
- sequencePanel = new JPanel();
- sequencePanel.setBorder(BorderFactory.createEtchedBorder(1));
- sequencePanel.setLayout(new BoxLayout(sequencePanel,
- BoxLayout.PAGE_AXIS));
- sequencePanel.setBackground(new Color(214, 217, 223));
- sequencePanel.setForeground(new Color(0, 0, 0));
- sequencePanel.setEnabled(true);
- sequencePanel.setFont(new Font("DejaVu Sans", 0, 12));
- sequencePanel.setVisible(true);
- textPane = new JEditorPane();
- textPane.setEditable(false);
- textPane.setContentType("text/html");
- //Put the editor pane in a scroll pane.
- JScrollPane editorScrollPane = new JScrollPane(textPane);
- editorScrollPane.setVerticalScrollBarPolicy(
- JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
- editorScrollPane.setPreferredSize(new Dimension(100, 570));
- editorScrollPane.setMinimumSize(new Dimension(10, 10));
- sequencePanel.add(editorScrollPane);
- searchPanel = new JPanel();
- searchPanel.add(new JLabel("Search:"));
- searchField = new JTextField(20);
- searchPanel.add(searchField);
- sequencePanel.add(searchPanel);
- directionPanel = new JPanel();
- nextBtn = new JButton("Next");
- directionPanel.add(nextBtn);
- sequencePanel.add(directionPanel);
- //adding components to contentPane panel
- contentPane.add(mapPanel);
- contentPane.add(sequencePanel);
- contentPane.setOpaque(true);
- //adding panel to JFrame
- getContentPane().add(contentPane);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setLocationRelativeTo(null);
- pack();
- setVisible(true);
- }
- /** Create the menu items. */
- private void generateMenu()
- {
- menuBar = new JMenuBar();
- JMenu file = new JMenu("File");
- file.setMnemonic(KeyEvent.VK_F);
- JMenu edit = new JMenu("Edit");
- edit.setMnemonic(KeyEvent.VK_E);
- JMenu help = new JMenu("Help");
- help.setMnemonic(KeyEvent.VK_H);
- newmenu = new JMenuItem("New ");
- newmenu.setMnemonic(KeyEvent.VK_N);
- openmenu = new JMenuItem("Open ");
- openmenu.setMnemonic(KeyEvent.VK_O);
- openmenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
- ActionEvent.CTRL_MASK));
- savemenu = new JMenuItem("Save As");
- savemenu.setMnemonic(KeyEvent.VK_S);
- exitmenu = new JMenuItem("Exit ");
- exitmenu.setMnemonic(KeyEvent.VK_E);
- addmenu = new JMenuItem("Add ");
- addmenu.setMnemonic(KeyEvent.VK_A);
- aboutmenu = new JMenuItem("About ");
- aboutmenu.setMnemonic(KeyEvent.VK_T);
- aboutmenu.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- JOptionPane.showMessageDialog(null,
- "ChromosomeToolkit Ver 1.0");
- }
- });
- file.add(newmenu);
- file.add(openmenu);
- file.add(savemenu);
- file.addSeparator();
- file.add(exitmenu);
- edit.add(addmenu);
- help.add(aboutmenu);
- menuBar.add(file);
- menuBar.add(edit);
- menuBar.add(help);
- }
- /** Local main for unit testing.
- * @param args not used
- */
- public static void main(String[] args)
- {
- System.setProperty("swing.defaultlaf",
- "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
- javax.swing.SwingUtilities.invokeLater(new Runnable()
- {
- public void run()
- {
- new GUIskeleton();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement