Solved

OpenFileDialog Topmost in Java applet

Posted on 2000-02-23
5
1,046 Views
Last Modified: 2013-11-23
I have written a simple applet in J++ to resize an image and save it to the local HD.

The image is selected using the OpenFileDialog, which works well the first time. Any further attempts, however , the OpenFileDialog loads but is not topmost.

I have used SetWindowPos in VB, but am not sure how to implement this in J++ ( and if it's possible).

Any ideas would be greatly appreciated.

Attached is a cut down version of the applet (minus the "save" feature).

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import com.ms.wfc.ui.OpenFileDialog;
import com.ms.wfc.ui.SaveFileDialog;
import com.ms.wfc.ui.DialogResult;
import java.net.URL;

      public class Resizer extends Applet implements ActionListener {
            Image img, img2;
             int dlgResult;
            Button saveButton;       // new variable of type Button
            Button openButton;       // new variable of type Button
            String openfname;
            OpenFileDialog ofd;
            SaveFileDialog sfd;
            
            public void init() {
                  
                  setLayout(new BorderLayout());      // uses a Border layout for the components
            
                  Panel p = new Panel();
                  p.setLayout( new FlowLayout(FlowLayout.RIGHT));
                  openButton = new Button(" open "); // constructs a new instance of the Button class
                  p.add(openButton);                         // appends our button to the list of components in the applet
                  openButton.addActionListener(this); // waits for button events
                  
                  saveButton = new Button(" save "); // constructs a new instance of the Button class
                  p.add(saveButton);                         // appends our button to the list of components in the applet
                  saveButton.addActionListener(this); // waits for button events
                  
                  
                  add(p, "North");  // adds the Panel to the right

                  
                  
            }
            
            public void paint(Graphics g) {
                  
                  if ( openfname.length() > 0 )
                  {
                        // Draw the scaled version of the image
                        g.drawImage(img2, 0, 0, this);            
                  }
                                                 
            }
            
            public void actionPerformed(ActionEvent e) {
                  if (e.getSource() == openButton ) {
                        
                        ofd = new OpenFileDialog();
                        ofd.setDefaultExt("jpg");      //sets the default extension
                        ofd.setFilter("Image files (*.jpg)|*.jpg|All files (*.*)|*.*"); //sets the file filter
                        ofd.setFilterIndex(1);  //sets the filter that will be initially selected
                        ofd.setInitialDir("c:\\program files");  //sets the initial directory

                        int dlgResult = ofd.showDialog();
                        openfname = ofd.getFileName();
                        openfname = openfname.replace('\\','/');
                        openfname = "file:/" + openfname;
                        URL urlfname ;
                        try {
                        
                              urlfname = new URL(openfname);
                              try
                              {
                                    img = getImage(urlfname);
                                    
                                    img2 = img.getScaledInstance(400, 300, Image.SCALE_SMOOTH);
                              }
                              catch (Exception e1){};
                        }catch (Exception e2) {};
                                            
                        
                        repaint();
                  } // closes if
            }
            
      }
0
Comment
Question by:ggrace
  • 2
  • 2
5 Comments
 

Author Comment

by:ggrace
ID: 2553158
Adjusted points to 90
0
 
LVL 3

Expert Comment

by:terajiv
ID: 2553234
Hi ggrace,
instead of using thease
>>import com.ms.wfc.ui.OpenFileDialog;
>>import com.ms.wfc.ui.SaveFileDialog;
>>import com.ms.wfc.ui.DialogResult;
why dont u go for FileDialog class in java? It works similar to the one which ur using here.

If u get object of FileDialog class and use

void setDirectory(String dir) ;
void setFile(String file) ;
void setFilenameFilter(FilenameFilter filter) ;
void setMode(int mode)  ;

methods u will get correct results. Using this will give u FileDialog all the time topmost.
 

0
 
LVL 3

Accepted Solution

by:
terajiv earned 90 total points
ID: 2553253
Hi ggrace,
instead of using thease
>>import com.ms.wfc.ui.OpenFileDialog;
>>import com.ms.wfc.ui.SaveFileDialog;
>>import com.ms.wfc.ui.DialogResult;
why dont u go for FileDialog class in java? It works similar to the one which ur using here.

If u get object of FileDialog class and use

void setDirectory(String dir) ;
void setFile(String file) ;
void setFilenameFilter(FilenameFilter filter) ;
void setMode(int mode)  ;

methods u will get correct results. Using this will give u FileDialog all the time topmost.
 

0
 

Author Comment

by:ggrace
ID: 2553319
Thankyou very much. Works just fine now.
0
 

Expert Comment

by:PablitoRun
ID: 2966968
Is there no way then to set the modality of the mfc class?

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now