public void propertyChange(PropertyChangeEvent e) { if (e.getPropertyName().equals("minimum") && startAtMin) { start = getMinimum(); } if (e.getPropertyName().equals("minimum") || e.getPropertyName().equals("maximum")) { Enumeration keys = getLabelTable().keys(); Hashtable<Object, Object> hashtable = new Hashtable<Object, Object>(); // Save the labels that were added by the developer while (keys.hasMoreElements()) { Object key = keys.nextElement(); Object value = labelTable.get(key); if (!(value instanceof LabelUIResource)) { hashtable.put(key, value); } } clear(); createLabels(); // Add the saved labels keys = hashtable.keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); put(key, hashtable.get(key)); } ((JSlider) e.getSource()).setLabelTable(this); } }
/** * Implements CallListener.incomingCallReceived. When a call is received creates a call panel and * adds it to the main tabbed pane and plays the ring phone sound to the user. */ public void incomingCallReceived(CallEvent event) { Call sourceCall = event.getSourceCall(); CallPanel callPanel = new CallPanel(this, sourceCall, GuiCallParticipantRecord.INCOMING_CALL); mainFrame.addCallPanel(callPanel); if (mainFrame.getState() == JFrame.ICONIFIED) mainFrame.setState(JFrame.NORMAL); if (!mainFrame.isVisible()) mainFrame.setVisible(true); mainFrame.toFront(); this.callButton.setEnabled(true); this.hangupButton.setEnabled(true); NotificationManager.fireNotification( NotificationManager.INCOMING_CALL, null, "Incoming call recived from: " + sourceCall.getCallParticipants().next()); activeCalls.put(sourceCall, callPanel); this.setCallPanelVisible(true); }
/** * creates a new channel, if the channel exists it is removed (this method doubles as a * removeChannel) * * @param name the name of the channel */ public void newChannel(String name, boolean pass) { if (channels.containsKey(name)) { channels.remove(name); cboChannels.removeItem(name); } else { channels.put(name, new Boolean(pass)); cboChannels.addItem(name); } }
public void addMenuItem(String text, String loc) { locations.put(text, loc); if (filenames.contains("Test Text")) { filenames.remove("Test Text"); filenames.addElement(text); } else { filenames.addElement(text); } createPopupMenu(); }
/** * register keystrokes here which are for the WHEN_IN_FOCUSED_WINDOW case. Other types of * keystrokes will be handled by walking the hierarchy That simplifies some potentially hairy * stuff. */ public void registerKeyStroke(KeyStroke k, JComponent c) { Container topContainer = getTopAncestor(c); if (topContainer == null) { return; } Hashtable keyMap = containerMap.get(topContainer); if (keyMap == null) { // lazy evaluate one keyMap = registerNewTopContainer(topContainer); } Object tmp = keyMap.get(k); if (tmp == null) { keyMap.put(k, c); } else if (tmp instanceof Vector) { // if there's a Vector there then add to it. Vector v = (Vector) tmp; if (!v.contains(c)) { // only add if this keystroke isn't registered for this component v.addElement(c); } } else if (tmp instanceof JComponent) { // if a JComponent is there then remove it and replace it with a vector // Then add the old compoennt and the new compoent to the vector // then insert the vector in the table if (tmp != c) { // this means this is already registered for this component, no need to dup Vector<JComponent> v = new Vector<JComponent>(); v.addElement((JComponent) tmp); v.addElement(c); keyMap.put(k, v); } } else { System.out.println("Unexpected condition in registerKeyStroke"); Thread.dumpStack(); } componentKeyStrokeMap.put(new ComponentKeyStrokePair(c, k), topContainer); // Check for EmbeddedFrame case, they know how to process accelerators even // when focus is not in Java if (topContainer instanceof EmbeddedFrame) { ((EmbeddedFrame) topContainer).registerAccelerator(k); } }
/** * Expands the sub folders and image informations under the specified node. * * @param node the node. */ protected void expandNode(DefaultMutableTreeNode node) { try { Object[] paths = node.getPath(); String path_str = ""; Vector folder_list = new Vector(); for (int i = 1; i < paths.length; i++) { String name = (String) ((DefaultMutableTreeNode) paths[i]).getUserObject(); path_str += "/" + name; // Converts January...December to 1...12. if (mode == DATE_ORIENTED && i == 2) { for (int m = 1; m <= 12; m++) { if (JulianDay.getFullSpellMonthString(m).equals(name)) name = String.valueOf(m); } } folder_list.addElement(name); } // When to expand sub folders. Vector folders = new Vector(); if (mode == DATE_ORIENTED) folders = db_manager.getDateOrientedFolders(folder_list); if (mode == PATH_ORIENTED) folders = db_manager.getPathOrientedFolders(folder_list); addNode(node, folders); // When to expand image informations. XmlDBAccessor accessor = null; if (mode == DATE_ORIENTED) accessor = db_manager.getDateOrientedAccessor(folder_list); if (mode == PATH_ORIENTED) accessor = db_manager.getPathOrientedAccessor(folder_list); if (accessor != null) { Vector name_list = new Vector(); XmlInformation info = (XmlInformation) accessor.getFirstElement(); while (info != null) { name_list.addElement(info.getPath()); hash_info.put(path_str + "/" + info.getPath(), info); info = (XmlInformation) accessor.getNextElement(); } addNode(node, name_list); } revalidate(); repaint(); } catch (IOException exception) { String message = "Failed to read the database."; JOptionPane.showMessageDialog(pane, message, "Error", JOptionPane.ERROR_MESSAGE); } }
private void load() { File file = new File(filename); if (file.exists()) { try { Document doc = XmlUtil.getDocument(file); Element root = doc.getDocumentElement(); Node child = root.getFirstChild(); while (child != null) { if (child.getNodeType() == Node.ELEMENT_NODE) { Profile p = new Profile((Element) child); table.put(p.name, p); } child = child.getNextSibling(); } } catch (Exception ignore) { } } }
public void registerMenuBar(JMenuBar mb) { Container top = getTopAncestor(mb); if (top == null) { return; } Hashtable keyMap = containerMap.get(top); if (keyMap == null) { // lazy evaluate one keyMap = registerNewTopContainer(top); } // use the menubar class as the key Vector menuBars = (Vector) keyMap.get(JMenuBar.class); if (menuBars == null) { // if we don't have a list of menubars, // then make one. menuBars = new Vector(); keyMap.put(JMenuBar.class, menuBars); } if (!menuBars.contains(mb)) { menuBars.addElement(mb); } }
protected Hashtable registerNewTopContainer(Container topContainer) { Hashtable keyMap = new Hashtable(); containerMap.put(topContainer, keyMap); return keyMap; }
/** * Analyze class fields and fill in "voSetterMethods","voGetterMethods","indexes",reverseIndexes" * attributes. * * @param prefix e.g. "attrx.attry." * @param parentMethods getter methods of parent v.o. * @param classType class to analyze */ private void analyzeClassFields( Hashtable vosAlreadyProcessed, String prefix, Method[] parentMethods, Class classType) { try { Integer num = (Integer) vosAlreadyProcessed.get(classType); if (num == null) num = new Integer(0); num = new Integer(num.intValue() + 1); if (num.intValue() > 10) return; vosAlreadyProcessed.put(classType, num); // retrieve all getter and setter methods defined in the specified value object... String attributeName = null; Method[] methods = classType.getMethods(); String aName = null; for (int i = 0; i < methods.length; i++) { attributeName = methods[i].getName(); if (attributeName.startsWith("get") && methods[i].getParameterTypes().length == 0 && ValueObject.class.isAssignableFrom(methods[i].getReturnType())) { aName = getAttributeName(attributeName, classType); Method[] newparentMethods = new Method[parentMethods.length + 1]; System.arraycopy(parentMethods, 0, newparentMethods, 0, parentMethods.length); newparentMethods[parentMethods.length] = methods[i]; analyzeClassFields( vosAlreadyProcessed, prefix + aName + ".", newparentMethods, methods[i].getReturnType()); } if (attributeName.startsWith("get") && methods[i].getParameterTypes().length == 0 && (methods[i].getReturnType().equals(String.class) || methods[i].getReturnType().equals(Long.class) || methods[i].getReturnType().equals(Long.TYPE) || methods[i].getReturnType().equals(Float.class) || methods[i].getReturnType().equals(Float.TYPE) || methods[i].getReturnType().equals(Short.class) || methods[i].getReturnType().equals(Short.TYPE) || methods[i].getReturnType().equals(Double.class) || methods[i].getReturnType().equals(Double.TYPE) || methods[i].getReturnType().equals(BigDecimal.class) || methods[i].getReturnType().equals(java.util.Date.class) || methods[i].getReturnType().equals(java.sql.Date.class) || methods[i].getReturnType().equals(java.sql.Timestamp.class) || methods[i].getReturnType().equals(Integer.class) || methods[i].getReturnType().equals(Integer.TYPE) || methods[i].getReturnType().equals(Character.class) || methods[i].getReturnType().equals(Boolean.class) || methods[i].getReturnType().equals(boolean.class) || methods[i].getReturnType().equals(ImageIcon.class) || methods[i].getReturnType().equals(Icon.class) || methods[i].getReturnType().equals(byte[].class) || methods[i].getReturnType().equals(Object.class) || ValueObject.class.isAssignableFrom(methods[i].getReturnType()))) { attributeName = getAttributeName(attributeName, classType); // try { // if // (classType.getMethod("set"+attributeName.substring(0,1).toUpperCase()+attributeName.substring(1),new Class[]{methods[i].getReturnType()})!=null) Method[] newparentMethods = new Method[parentMethods.length + 1]; System.arraycopy(parentMethods, 0, newparentMethods, 0, parentMethods.length); newparentMethods[parentMethods.length] = methods[i]; voGetterMethods.put(prefix + attributeName, newparentMethods); // } catch (NoSuchMethodException ex) { // } } else if (attributeName.startsWith("is") && methods[i].getParameterTypes().length == 0 && (methods[i].getReturnType().equals(Boolean.class) || methods[i].getReturnType().equals(boolean.class))) { attributeName = getAttributeName(attributeName, classType); Method[] newparentMethods = new Method[parentMethods.length + 1]; System.arraycopy(parentMethods, 0, newparentMethods, 0, parentMethods.length); newparentMethods[parentMethods.length] = methods[i]; voGetterMethods.put(prefix + attributeName, newparentMethods); } else if (attributeName.startsWith("set") && methods[i].getParameterTypes().length == 1) { attributeName = getAttributeName(attributeName, classType); try { if (classType.getMethod( "get" + attributeName.substring(0, 1).toUpperCase() + attributeName.substring(1), new Class[0]) != null) { Method[] newparentMethods = new Method[parentMethods.length + 1]; System.arraycopy(parentMethods, 0, newparentMethods, 0, parentMethods.length); newparentMethods[parentMethods.length] = methods[i]; voSetterMethods.put(prefix + attributeName, newparentMethods); } } catch (NoSuchMethodException ex) { try { if (classType.getMethod( "is" + attributeName.substring(0, 1).toUpperCase() + attributeName.substring(1), new Class[0]) != null) { Method[] newparentMethods = new Method[parentMethods.length + 1]; System.arraycopy(parentMethods, 0, newparentMethods, 0, parentMethods.length); newparentMethods[parentMethods.length] = methods[i]; voSetterMethods.put(prefix + attributeName, newparentMethods); } } catch (NoSuchMethodException exx) { } } } } // fill in indexes with the colProperties indexes first; after them, it will be added the // other indexes (of attributes not mapped with grid column...) HashSet alreadyAdded = new HashSet(); int i = 0; for (i = 0; i < attributeNames.length; i++) { reverseIndexes.put(attributeNames[i], new Integer(i)); alreadyAdded.add(attributeNames[i]); } Enumeration en = voGetterMethods.keys(); while (en.hasMoreElements()) { attributeName = en.nextElement().toString(); if (!alreadyAdded.contains(attributeName)) { reverseIndexes.put(attributeName, new Integer(i)); i++; } } } catch (Exception ex) { ex.printStackTrace(); } }
// Initializes this component. private void jbInit() { fileChooser.setFileFilter(new ScriptFileFilter()); this.getContentPane().setLayout(null); Hashtable<Integer, JLabel> labelTable = new Hashtable<Integer, JLabel>(); JLabel slowLabel = new JLabel("Slow"); slowLabel.setFont(Utilities.thinLabelsFont); JLabel fastLabel = new JLabel("Fast"); fastLabel.setFont(Utilities.thinLabelsFont); labelTable.put(1, slowLabel); labelTable.put(5, fastLabel); speedSlider.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { SpeedSlider_stateChanged(e); } }); speedSlider.setLabelTable(labelTable); speedSlider.setMajorTickSpacing(1); speedSlider.setPaintTicks(true); speedSlider.setPaintLabels(true); speedSlider.setBorder(BorderFactory.createEmptyBorder(0, 0, 5, 0)); speedSlider.setPreferredSize(new Dimension(95, 50)); speedSlider.setMinimumSize(new Dimension(95, 50)); speedSlider.setToolTipText("Speed"); speedSlider.setMaximumSize(new Dimension(95, 50)); final Dimension buttonSize = new Dimension(39, 39); loadProgramButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { loadProgramButton_actionPerformed(); } }); loadProgramButton.setMaximumSize(buttonSize); loadProgramButton.setMinimumSize(buttonSize); loadProgramButton.setPreferredSize(buttonSize); loadProgramButton.setSize(buttonSize); loadProgramButton.setToolTipText("Load Program"); loadProgramButton.setIcon(loadProgramIcon); ffwdButton.setMaximumSize(buttonSize); ffwdButton.setMinimumSize(buttonSize); ffwdButton.setPreferredSize(buttonSize); ffwdButton.setToolTipText("Run"); ffwdButton.setIcon(ffwdIcon); ffwdButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { ffwdButton_actionPerformed(); } }); stopButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { stopButton_actionPerformed(); } }); stopButton.setMaximumSize(buttonSize); stopButton.setMinimumSize(buttonSize); stopButton.setPreferredSize(buttonSize); stopButton.setToolTipText("Stop"); stopButton.setIcon(stopIcon); rewindButton.setMaximumSize(buttonSize); rewindButton.setMinimumSize(buttonSize); rewindButton.setPreferredSize(buttonSize); rewindButton.setToolTipText("Reset"); rewindButton.setIcon(rewindIcon); rewindButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { rewindButton_actionPerformed(); } }); scriptButton.setMaximumSize(buttonSize); scriptButton.setMinimumSize(buttonSize); scriptButton.setPreferredSize(buttonSize); scriptButton.setToolTipText("Load Script"); scriptButton.setIcon(scriptIcon); scriptButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { scriptButton_actionPerformed(); } }); breakButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { breakButton_actionPerformed(); } }); breakButton.setMaximumSize(buttonSize); breakButton.setMinimumSize(buttonSize); breakButton.setPreferredSize(buttonSize); breakButton.setToolTipText("Open breakpoint panel"); breakButton.setIcon(breakIcon); breakpointWindow.addBreakpointListener(this); singleStepButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { singleStepButton_actionPerformed(); } }); singleStepButton.setMaximumSize(buttonSize); singleStepButton.setMinimumSize(buttonSize); singleStepButton.setPreferredSize(buttonSize); singleStepButton.setSize(buttonSize); singleStepButton.setToolTipText("Single Step"); singleStepButton.setIcon(singleStepIcon); stepOverButton.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { stepOverButton_actionPerformed(); } }); stepOverButton.setMaximumSize(buttonSize); stepOverButton.setMinimumSize(buttonSize); stepOverButton.setPreferredSize(buttonSize); stepOverButton.setSize(buttonSize); stepOverButton.setToolTipText("Step Over"); stepOverButton.setIcon(stepOverIcon); animationCombo.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { animationCombo_actionPerformed(); } }); formatCombo.addActionListener( new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { formatCombo_actionPerformed(); } }); additionalDisplayCombo.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { additionalDisplayCombo_actionPerformed(); } }); messageLbl.setFont(Utilities.statusLineFont); messageLbl.setBorder(BorderFactory.createLoweredBevelBorder()); messageLbl.setBounds(new Rectangle(0, 667, CONTROLLER_WIDTH - 8, 25)); toolBar = new JToolBar(); toolBar.setSize(new Dimension(TOOLBAR_WIDTH, TOOLBAR_HEIGHT)); toolBar.setLayout(new FlowLayout(FlowLayout.LEFT, 3, 0)); toolBar.setFloatable(false); toolBar.setLocation(0, 0); toolBar.setBorder(BorderFactory.createEtchedBorder()); arrangeToolBar(); this.getContentPane().add(toolBar, null); toolBar.revalidate(); toolBar.repaint(); repaint(); // Creating the menu bar menuBar = new JMenuBar(); arrangeMenu(); setJMenuBar(menuBar); this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); this.getContentPane().add(messageLbl, null); setControllerSize(); // sets the frame to be visible. setVisible(true); }
public void add(Profile profile) { table.put(profile.name, profile); save(); }
private void makeComponents() { this.getWwd().setPreferredSize(new Dimension(1024, 768)); JPanel panel = new JPanel(new BorderLayout()); { panel.setBorder(new EmptyBorder(10, 0, 10, 0)); JPanel controlPanel = new JPanel(new BorderLayout(0, 10)); controlPanel.setBorder(new EmptyBorder(20, 10, 20, 10)); JPanel btnPanel = new JPanel(new GridLayout(5, 1, 0, 5)); { JButton btn = new JButton("Zoom to Matterhorn"); btn.setActionCommand(ACTION_COMMAND_BUTTON1); btn.addActionListener(this.controller); btnPanel.add(btn); btn = new JButton("DEMO getElevations()"); btn.setActionCommand(ACTION_COMMAND_BUTTON2); btn.addActionListener(this.controller); btnPanel.add(btn); btn = new JButton("DEMO getElevation()"); btn.setActionCommand(ACTION_COMMAND_BUTTON3); btn.addActionListener(this.controller); btnPanel.add(btn); btn = new JButton("DEMO new getElevations"); btn.setActionCommand(ACTION_COMMAND_BUTTON4); btn.addActionListener(this.controller); btnPanel.add(btn); // btn = new JButton("Button 5"); // btn.setActionCommand(ACTION_COMMAND_BUTTON5); // btn.addActionListener(this.controller); // btnPanel.add(btn); } controlPanel.add(btnPanel, BorderLayout.NORTH); JPanel vePanel = new JPanel(new BorderLayout(0, 5)); { JLabel label = new JLabel("Vertical Exaggeration"); vePanel.add(label, BorderLayout.NORTH); int MIN_VE = 1; int MAX_VE = 8; int curVe = (int) this.getWwd().getSceneController().getVerticalExaggeration(); curVe = curVe < MIN_VE ? MIN_VE : (curVe > MAX_VE ? MAX_VE : curVe); JSlider slider = new JSlider(MIN_VE, MAX_VE, curVe); slider.setMajorTickSpacing(1); slider.setPaintTicks(true); slider.setSnapToTicks(true); Hashtable<Integer, JLabel> labelTable = new Hashtable<Integer, JLabel>(); labelTable.put(1, new JLabel("1x")); labelTable.put(2, new JLabel("2x")); labelTable.put(4, new JLabel("4x")); labelTable.put(8, new JLabel("8x")); slider.setLabelTable(labelTable); slider.setPaintLabels(true); slider.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { double ve = ((JSlider) e.getSource()).getValue(); ActionEvent ae = new ActionEvent(ve, 0, ACTION_COMMAND_VERTICAL_EXAGGERATION); controller.actionPerformed(ae); } }); vePanel.add(slider, BorderLayout.SOUTH); } controlPanel.add(vePanel, BorderLayout.SOUTH); panel.add(controlPanel, BorderLayout.SOUTH); this.layerPanel = new LayerPanel(this.getWwd(), null); panel.add(this.layerPanel, BorderLayout.CENTER); } getContentPane().add(panel, BorderLayout.WEST); }
public void cacheIcon(File f, Icon i) { if (f == null || i == null) { return; } iconCache.put(f, i); }
/** Runs this thread. */ public void run() { CommonFileChooser file_chooser = new CommonFileChooser(); file_chooser.setDialogTitle("Choose a directory."); file_chooser.setMultiSelectionEnabled(false); file_chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); if (file_chooser.showSaveDialog(pane) == JFileChooser.APPROVE_OPTION) { try { File directory = file_chooser.getSelectedFile(); directory.mkdirs(); // Outputs the variability XML file. String path = FileManager.unitePath(directory.getAbsolutePath(), "package.xml"); File file = new File(path); if (file.exists()) { String message = "Overwrite to " + file.getPath() + " ?"; if (0 != JOptionPane.showConfirmDialog( pane, message, "Confirmation", JOptionPane.YES_NO_OPTION)) { return; } } XmlVariabilityHolder holder = new XmlVariabilityHolder(); Variability[] records = getSelectedRecords(); for (int i = 0; i < records.length; i++) { XmlVariability variability = new XmlVariability(records[i]); holder.addVariability(variability); } holder.write(file); // Copies the report XML document files. Hashtable hash_xml = new Hashtable(); for (int i = 0; i < records.length; i++) { XmlMagRecord[] mag_records = records[i].getMagnitudeRecords(); for (int j = 0; j < mag_records.length; j++) hash_xml.put(mag_records[j].getImageXmlPath(), this); } Vector failed_list = new Vector(); Enumeration keys = hash_xml.keys(); while (keys.hasMoreElements()) { String xml_path = (String) keys.nextElement(); try { File src_file = desktop.getFileManager().newFile(xml_path); File dst_file = new File(FileManager.unitePath(directory.getAbsolutePath(), xml_path)); if (dst_file.exists() == false) FileManager.copy(src_file, dst_file); } catch (Exception exception) { failed_list.addElement(xml_path); } } if (failed_list.size() > 0) { String header = "Failed to copy the following XML files:"; MessagesDialog dialog = new MessagesDialog(header, failed_list); dialog.show(pane, "Error", JOptionPane.ERROR_MESSAGE); } // Copies the image files. failed_list = new Vector(); keys = hash_xml.keys(); while (keys.hasMoreElements()) { path = (String) keys.nextElement(); try { XmlInformation info = XmlReport.readInformation(desktop.getFileManager().newFile(path)); path = info.getImage().getContent(); File src_file = desktop.getFileManager().newFile(path); File dst_file = new File(FileManager.unitePath(directory.getAbsolutePath(), path)); if (dst_file.exists() == false) FileManager.copy(src_file, dst_file); } catch (Exception exception) { failed_list.addElement(path); } } if (failed_list.size() > 0) { String header = "Failed to copy the following image files:"; MessagesDialog dialog = new MessagesDialog(header, failed_list); dialog.show(pane, "Error", JOptionPane.ERROR_MESSAGE); } // Creates the sub catalog database. try { DiskFileSystem file_system = new DiskFileSystem( new File( directory.getAbsolutePath(), net.aerith.misao.pixy.Properties.getDatabaseDirectoryName())); CatalogDBManager new_manager = new GlobalDBManager(file_system).getCatalogDBManager(); Hashtable hash_stars = new Hashtable(); for (int i = 0; i < records.length; i++) { CatalogStar star = records[i].getStar(); CatalogDBReader reader = new CatalogDBReader(desktop.getDBManager().getCatalogDBManager()); StarList list = reader.read(star.getCoor(), 0.5); for (int j = 0; j < list.size(); j++) { CatalogStar s = (CatalogStar) list.elementAt(j); hash_stars.put(s.getOutputString(), s); } } keys = hash_stars.keys(); while (keys.hasMoreElements()) { String string = (String) keys.nextElement(); CatalogStar star = (CatalogStar) hash_stars.get(string); new_manager.addElement(star); } } catch (Exception exception) { String message = "Failed to create sub catalog database."; JOptionPane.showMessageDialog(pane, message, "Error", JOptionPane.ERROR_MESSAGE); } String message = "Completed."; JOptionPane.showMessageDialog(pane, message); } catch (IOException exception) { String message = "Failed."; JOptionPane.showMessageDialog(pane, message, "Error", JOptionPane.ERROR_MESSAGE); } } }