[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

OpenFileDialog Topmost in Java applet

Posted on 2000-02-23
5
Medium Priority
?
1,088 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 360 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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

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…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
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 video teaches viewers about errors in exception handling.
Suggested Courses
Course of the Month19 days, 16 hours left to enroll

873 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