Java Swing Common

Submitted by code_admin on Fri, 07/20/2018 - 16:03

MessageBox

  1. JOptionPane.showMessageDialog(this, "Ouch!");

(this is a JFrame)

Yes No

  1. int r = JOptionPane.showConfirmDialog (null, "Could not find the IC_SVN_Utilities.settings file. Create one?","Warning",JOptionPane.YES_NO_OPTION);
  2. if (JOptionPane.YES_OPTION==r) {
  3.     try {
  4.         LS = new LocalSettings("IC_SVN_Utilities.settings",true);
  5.     } catch (Exception f) {
  6.         JOptionPane.showMessageDialog(null, "Error creating options - " + f.toString());
  7.     }
  8. }

User text input

  1.         String schema = UIUtilities.dialogUserInput(m_parent, "What Schema will this object exist in? Note this must be case seneitive e.g. \"APPS\"","Select Schema","");
  2.         if (schema.equals(metcarob.com.common.ui.dialogUserSelect.RET_CANCEL)) return;
  3.         if (schema.equals("")) return;

User Selection

import metcarob.com.common.ui.dialogUserSelect;
import metcarob.com.common.ui.dialogUserSelectInput;
import metcarob.com.common.ui.dialogUserSelectOutput;

OBJECT as id value

  1.  { //This scope uses an OBJECT as the return value
  2.   List<String> cols = new ArrayList<String>();
  3.    List<Object[]> rows = new ArrayList<Object[]>();
  4.    
  5.  dialogUserSelectInput inp = new dialogUserSelectInput();
  6.    inp.addCol("Col_ONE");
  7.    inp.addCol("Col_Two");
  8.    inp.addCol("Col_Three");
  9.    inp.addCol("Col_Four");
  10.    inp.addCol("Col_5");
  11.    RJMInteger id_obj = null;
  12.    for (int c=0;c<10;c++) {
  13.        
  14.       id_obj = new RJMInteger(c);
  15.       Object[] row = { "XID" + c, (char) ('a'+c), "XSUBTYPE", "XDEV", new Date() };
  16.        try {
  17.            inp.addRow((Object) id_obj,row);
  18.        } catch (Exception e) {
  19.            e.printStackTrace();
  20.        }
  21.    };
  22.   dialogUserSelectOutput output = metcarob.com.common.ui.UIUtilities.dialogUserSelectObject(null, "TITLE", "PROMP","Not in List",inp);
  23.  
  24.   if (output.getSelectionOutcome().equals(metcarob.com.common.ui.dialogUserSelect.RET_CANCEL)) {
  25.        System.out.println("Cancel pressed");
  26.    } else if (output.getSelectionOutcome().equals(metcarob.com.common.ui.dialogUserSelect.RET_NOTINLIST)) {
  27.        System.out.println("Not in list pressed");
  28.    } else {
  29.        RJMInteger output_obj = (RJMInteger) output.getSelectedObject();
  30.        System.out.println(Integer.toString(output_obj.get()) + " was returned");            
  31.    }
  32.   }    
  33.  

STRING as id value

  1.  { //This scope uses a STRING as the return value
  2.   List<String> cols = new ArrayList<String>();
  3.    List<Object[]> rows = new ArrayList<Object[]>();
  4.    
  5.  dialogUserSelectInput inp = new dialogUserSelectInput();
  6.    inp.addCol("Col_ONE");
  7.    inp.addCol("Col_Two");
  8.    inp.addCol("Col_Three");
  9.    inp.addCol("Col_Four");
  10.    inp.addCol("Col_5");
  11.    for (int c=0;c<10;c++) {
  12.        
  13.      Object[] row = { "XID" + c, (char) ('a'+c), "XSUBTYPE", "XDEV", new Date() };
  14.        try {
  15.            inp.addRow((String) row[0],row);
  16.        } catch (Exception e) {
  17.            e.printStackTrace();
  18.        }
  19.    };
  20.    
  21.  String s = metcarob.com.common.ui.UIUtilities.dialogUserSelect(null, "TITLE", "PROMP","Not in List",inp);
  22.  
  23.   if (s.equals(metcarob.com.common.ui.dialogUserSelect.RET_CANCEL)) {
  24.        System.out.println("Cancel pressed");
  25.    } else if (s.equals(metcarob.com.common.ui.dialogUserSelect.RET_NOTINLIST)) {
  26.        System.out.println("Not in list pressed");
  27.    } else {
  28.        System.out.println(s + " was returned");            
  29.    }
  30. }

Long running process

Code in init

  1.         this.setGlassPane(new JComponent() {
  2.             public void paint(Graphics g) {
  3.                 super.paint(g);
  4.                 Graphics2D g2d = (Graphics2D)g;                
  5.                 g2d.setColor(Color.red);
  6.                 g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,5 * 0.1f));
  7.                 g.fillRect(0, 0, getWidth(), getHeight());
  8.                
  9.             }            
  10.         });

Code in JFrame/Dialog

  1.     private void startLongOperation() {
  2.         this.getGlassPane().setVisible(true);
  3.         this.getGlassPane().repaint();
  4.     }
  5.     private void endLongOperation() {
  6.         this.getGlassPane().setVisible(false);
  7.     }

Code in actions

  1.         public void actionPerformed(ActionEvent e) {
  2.             startLongOperation();
  3.             final ActionEvent fin_e = e;
  4.             SwingUtilities.invokeLater(new Runnable() {
  5.                 @Override
  6.                 public void run() {
  7.                     try {
  8.                          //SOME CODE TO RUN A PROCESS
  9.                     } catch (Exception f) {
  10.                         String msg = "An error occured" + f.toString();
  11.                         JOptionPane.showMessageDialog(null, msg);                                                        
  12.                     } finally {
  13.                         endLongOperation();
  14.                     }
  15.                 }
  16.             });

File Chooser

(e.g. Browse for a file ...)

  1.                             String tmp = "";
  2.                             String tmp2 = "";
  3.                            
  4.                             JFileChooser c = new JFileChooser();
  5.                             c.setFileFilter(new FileFilter() {
  6.                                 public boolean accept(File f) {
  7.                                   return f.getName().toLowerCase().endsWith(".db")
  8.                                       || f.isDirectory();
  9.                                 }
  10.                            
  11.                                 public String getDescription() {
  12.                                   return "DB Files";
  13.                                 }
  14.                               });
  15.                               int rVal = c.showOpenDialog(m_This);
  16.                               if (rVal == JFileChooser.APPROVE_OPTION) {
  17.                                 tmp = c.getSelectedFile().getName();
  18.                                 tmp2 = c.getCurrentDirectory().toString();
  19.                               }
  20.                               if (rVal == JFileChooser.CANCEL_OPTION) {
  21.                                 return;
  22.                               }      
  23.                             String FileName = tmp2 + System.getProperty("file.separator") + tmp;

JFileChooser has a method called setFileSelectionMode, which can take three values:
- JFileChooser.FILES_ONLY
- JFileChooser.DIRECTORIES_ONLY
- JFileChooser.FILES_AND_DIRECTORIES

Tags

RJM Article Type
Work Notes