//Easy GUI Apps, Components, IBIO import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; //========================================================================= //==== EasyApp - standard GUI app with standard IBIO routines ============ //========================================================================= public class EasyApp extends Frame implements ActionListener, ItemListener, MouseListener, KeyListener { //--- Constructor ------- MenuBar menubar = addMenuBar(); public EasyApp() { setLayout(null); setSize(600,400); addWindowListener // enable [x] for closing app ( new WindowAdapter() { public void windowClosing(WindowEvent evt) { evt.getWindow().dispose(); } } ); setVisible(true); toFront(); requestFocus(); } public MenuBar makeMenus(String[] menus) { for (int x=0;x0) { int d = menus[x].indexOf("|"); if (d<0) {d=menus[x].length(); } Menu newmenu = addMenu(menus[x].substring(0,d),menubar); while (d>=0 && d0) { int s = words.indexOf("|"); if (s<0) { newComp.add(words); words = ""; } else { newComp.add(words.substring(0,s)); words = words.substring(s+1); } } add(newComp); newComp.setBounds(left,top,width,height); if (listener!=null)newComp.addItemListener(listener); return newComp; } public Choice addChoice(String words,int left, int top, int width, int height, ItemListener listener) { Choice newComp = new Choice(); while (words.length()>0) { int s = words.indexOf("|"); if (s<0) { newComp.add(words); words = ""; } else { newComp.add(words.substring(0,s)); words = words.substring(s+1); } } add(newComp); newComp.setBounds(left,top,width,height); if (listener!=null)newComp.addItemListener(listener); return newComp; } public JTable addJTable(String[][] data, int left, int top, int width, int height, ActionListener listener) { String[] heads = new String[data[0].length]; for(int s=0; s0) { String temp = arr[c]; arr[c] = arr[c+1]; arr[c+1] = temp; swaps++; } c++; } } while (swaps != 0); } public String getType(Object ob) { String c = ob.getClass().toString(); int p = c.lastIndexOf("."); if (p<0) {p=-1;} return c.substring(p+1); } //=== Stub versions of Listeners to satisfy interfaces === public void actionPerformed(ActionEvent evt) { actions(evt.getSource(),evt.getActionCommand()); } public void itemStateChanged(ItemEvent evt) { Object source = evt.getSource(); String t = getType(source); String command = ""; if (t.equals("List")) { command = ((List)source).getSelectedItem(); } else if (t.equals("Choice")){ command = ((Choice)source).getSelectedItem(); } else {command = evt.getItem().toString();} actions(source,command); } public void actions(Object source,String command) { output(source.toString()+":"+command); } public void mouseClicked(MouseEvent e) { Object source = e.getSource(); actions(source,""); } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void keyTyped(KeyEvent e) { Object source = e.getSource(); actions(source,e.getKeyChar()+""); } public void keyPressed(KeyEvent e){} public void keyReleased(KeyEvent e){} //=========================================================== //=== IBIO simplified input/output commands - GUI version === //=========================================================== public void output(String message) { JOptionPane.showMessageDialog(this,message); } public void outputString(String message) { output(message); } public void output(char info) { output(info + ""); } public void output(byte info) { output(info + ""); } public void output(int info) { output(info + ""); } public void output(long info) { output(info + ""); } public void output(double info) { output(info + ""); } public void output(boolean info) { output(info + ""); } //----- Numerical input methods return 0 on error ------------ public String input(String prompt) { return JOptionPane.showInputDialog(this,prompt); } public String inputString(String prompt) { return input(prompt); } public String input() { return input(""); } public char inputChar(String prompt) { char result=(char)0; try{result=input(prompt).charAt(0);} catch (Exception e){result = (char)0;} return result; } public byte inputByte(String prompt) { byte result=0; try{result=Byte.valueOf(input(prompt).trim()).byteValue();} catch (Exception e){result = 0;} return result; } public int inputInt(String prompt) { int result=0; try{result=Integer.valueOf( input(prompt).trim()).intValue();} catch (Exception e){result = 0;} return result; } public long inputLong(String prompt) { long result=0; try{result=Long.valueOf(input(prompt).trim()).longValue();} catch (Exception e){result = 0;} return result; } public double inputDouble(String prompt) { double result=0; try{result=Double.valueOf( input(prompt).trim()).doubleValue();} catch (Exception e){result = 0;} return result; } public boolean inputBoolean(String prompt) { boolean result=false; try{result=Boolean.valueOf( input(prompt).trim()).booleanValue();} catch (Exception e){result = false;} return result; } //============================================================ //=========== end IBIO ======================================= //============================================================ }