Solved

OpenFileDialog Topmost in Java applet

Posted on 2000-02-23
5
1,049 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

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…

778 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