Solved

OpenFileDialog Topmost in Java applet

Posted on 2000-02-23
5
1,057 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

Question has a verified solution.

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

Suggested Solutions

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
This video teaches viewers about errors in exception handling.
Suggested Courses

737 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