Advertisement
kijato

JSwingExample.java ( Menu & "StatusBar" )

Jan 29th, 2020 (edited)
532
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.15 KB | None | 0 0
  1. /*
  2.  
  3. javac JSwingExample.java && jar cfe JSwingExample.jar JSwingExample JSwingExample.class && java -jar JSwingExample.jar
  4.  
  5. https://docs.oracle.com/javase/8/docs/api/javax/swing/JMenuItem.html
  6.  
  7. */
  8.  
  9. import javax.swing.*;
  10. import javax.swing.border.*;
  11. import java.awt.*;
  12. import java.awt.event.*;
  13. import java.io.*;
  14.  
  15. class JSwingExample extends JFrame implements ActionListener {
  16.  
  17.    JMenuBar jmb;
  18.    JMenu jmF;
  19.    JMenuItem jmiO;
  20.    JMenuItem jmiS;
  21.    JMenuItem jmiQ;
  22.    JMenu jmT;
  23.    JMenuItem jmi1;
  24.    JMenuItem jmi2;
  25.    JMenuItem jmi3;
  26.    //JMenuBar statusBar;
  27.    JPanel statusBar;
  28.    
  29.    JLabel statusLabel;
  30.    JTextArea ta;
  31.    JTextArea ta2;
  32.  
  33.    public static void main(String args[]){
  34.       new JSwingExample();
  35.    }
  36.  
  37.    JSwingExample(){
  38.      
  39.       jmb = new JMenuBar();
  40.      
  41.       jmF = new JMenu("File");
  42.       jmiO = new JMenuItem("Open"); jmiO.addActionListener(this); jmF.add(jmiO);
  43.       jmiS = new JMenuItem("Save"); jmiS.addActionListener(this); jmF.add(jmiS);
  44.       jmiS.setEnabled(false);
  45.       jmF.addSeparator();
  46.       jmiQ = new JMenuItem("Quit"); jmiQ.addActionListener(this); jmF.add(jmiQ);
  47.       jmb.add(jmF);
  48.       jmb.setBorder(BorderFactory.createMatteBorder(1, 0, 1, 0, Color.lightGray));
  49.  
  50.       jmT = new JMenu("Tools");
  51.       jmi1 = new JMenuItem("1"); jmi1.addActionListener(this); jmT.add(jmi1);
  52.       jmi2 = new JMenuItem("2"); jmi2.addActionListener(this); jmT.add(jmi2);
  53.       jmi3 = new JMenuItem("3"); jmi3.addActionListener(this); jmT.add(jmi3);
  54.       jmb.add(jmT);
  55.      
  56.       ta=new JTextArea("...\n");
  57.       ta.setLineWrap(true);
  58.       ta.setWrapStyleWord(true);
  59.       ta2=new JTextArea("...\n");
  60.       //ta.setMinimumSize(100);
  61.      
  62.       JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
  63.       splitPane.setLeftComponent(ta);
  64.       //splitPane.getLeftComponent().setMinimumSize(100);
  65.       splitPane.setRightComponent(ta2);
  66.       splitPane.setOneTouchExpandable(true);
  67.       splitPane.setDividerLocation(150);
  68.       splitPane.setDividerLocation(0.5);
  69.          
  70.       add(splitPane,BorderLayout.CENTER);
  71.  
  72.       //statusBar = new JMenuBar();
  73.       statusBar = new JPanel();
  74.  
  75.       statusLabel=new JLabel("...");
  76.       //statusLabel.setBounds(50,50,100,30);
  77.       statusLabel.setHorizontalAlignment(SwingConstants.LEFT);
  78.       statusLabel.setFont(new Font("sansserif", Font.PLAIN, 11));
  79.  
  80.       statusBar.setBorder(new BevelBorder(BevelBorder.LOWERED));
  81.       statusBar.setPreferredSize(new Dimension(getWidth(), 20 ));
  82.       statusBar.setLayout(new BoxLayout(statusBar, BoxLayout.X_AXIS));
  83.       statusBar.add(statusLabel);
  84.       add(statusBar,BorderLayout.SOUTH);
  85.  
  86.       setJMenuBar(jmb);
  87.       setTitle(System.getProperty("user.name"));
  88.       setSize(600,400);
  89.       setLocationRelativeTo(null);
  90.       setVisible(true);
  91.       setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  92.       revalidate();
  93.  
  94.    }
  95.    
  96.    public void actionPerformed(ActionEvent e){
  97.       ta.append(e.getSource().toString()+"\n");
  98.       statusLabel.setText(e.getActionCommand());
  99.      
  100.       if ( e.getActionCommand().equals("Quit") ) { System.exit(0); }
  101.  
  102.       if ( e.getActionCommand() == "Open" ) {
  103.          jmiS.setEnabled(true);
  104.          JFileChooser fileChooser = new JFileChooser();
  105.          //fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
  106.          fileChooser.setCurrentDirectory(new File(System.getProperty("user.dir")));
  107.          if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
  108.              File selectedFile = fileChooser.getSelectedFile();
  109.              ta.append("Selected file: " + selectedFile.getAbsolutePath());
  110.          }
  111.       }
  112.      
  113.       //JButton btn = (JButton) e.getSource();
  114.       //String pressedKey = (String) btn.getClientProperty("key");
  115.       /*if (CAPS.equals(pressedKey)) {
  116.         for (JButton button : buttons) {
  117.             String text = button.getText();
  118.             text = caps ? text.toLowerCase() : text.toUpperCase();
  119.             button.setText(text);
  120.         }
  121.         caps = !caps;
  122.         return;
  123.       }*/
  124.       //statusLabel.setText(statusLabel.getText()+" "+pressedKey);
  125.      
  126.    }
  127.  
  128. }
  129.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement