Choosing JDialog or JInternalFrame

I have a JPanel with some components in it. One of the components is JTextField which takes an employee number. Adjacent to that JTextField is a JButton. When that button is clicked I have to open another window where I let the user search for employee based on his name. When the employee is found, I take his employee number and populate the JTextField in the parent panel.
I am not sure whether to use a JInternalFrame or a JDialog for the employee selection window. Also, if there are options which are better for this type of functionality please let me know.
regards,
nirvan.

Use a modal JDialog.
I suggest you read the JInternalFrame API and follow the link to the Swing tutorial on "How to Use Internal Frames" for more information on internal frames, including when to use them.

Similar Messages

  • Newbie: should I use a JDialog or JPanel ?

    I have inherited an app that is 50% complete and I need to add a new popup window that is displayed in response to a Pulldown menu selection.
    The popup window will have 5 different text fields that will need to be passed back to the calling routine.
    In the source code that I inherited, similar windows are created using a JDialog and sometimes using a JPanel (and I can't figure out why).
    What are the upsides and downsides for choosing JDialog over JPanel ?
    Thank you

    This is a question of convenienve vs. reusability.
    If you inherit your component from JDialog, it will be easy to set up the infrastructure:
    - Return closes dialog:
      rootPane().setDefaultButton(yourButton)- Closing triggers your code:
      this.addWindowListener(myWindowListener}- Menu needed:
      this.setJMenuBar(myMenuBar) - ...
    But the downside is, that you can't reuse your component (possibly together with other components) inside a JFrame.
    Sven

  • Need to make JFrame Always on top.

    I have the main application window(JFrame).It in turn creates many JFrames , i want the newly created JFrames to be set as ALWAYS_ON_TOP , ie even if i click on the the main window,the new JFrames should be always on top similar to Yahoo messenger and MSN messenger.
    Actually i don't want the functionality of "ALWAYS_ON_TOP" with JDialog or JInternalFrame,as both of them will ultimately have their parents as the main JFrame window.
    I want this functionality with JFrames that are created from the main JFrame window.
    Actually i am floating some components of my main JFrame window for which i create a new JFrame window and place that floated component.
    Now this floating JFrame is independent of the main JFrame window ,but i want to set "always on top" for the floating JFrame windows similar to the Yahoo and MSN messengers.

    Try this code. It should be work on all windows which are inherited from java.awt.Window
    * Call this from class consructor
    public void initialize() {
    TopThread top = new TopThread();
    top.start();
    * Keep JWindow on top (inner class)
    class TopThread extends Thread {
    public void run() {
    while(true) {
    toFront();
    * Let 10 milliseconds for other code to execute
    try {
    Thread.sleep(10);
    catch(Exception e) {
    // Nothing to do

  • Need a Java guru :-)

    In my program I would like to have a method - "public boolean confirmAction()" - in the GUI. This method should present the user with some option, and return the reply.
    In solving a similar problem I have used JOptionPane (with JDialog) for this behavior, but now I have a full-screen application and cannot use JFrame, JDialog or JInternalFrame.
    First, I tried this approach:
    public boolean confirmAction() {
    // ConfirmPanel: The JPanel containing the question and the options.
    confirmPanel.show();
    return confirmPanel.getReply();
    The method "getReply()" in "ConfirmPanel" waits until the user has choosen an option, and returns the outcome.
    This workes fine if the caller of "confirmAction()" is not the "Event-Dispatching Thread" (EDT), but if the caller is the EDT this problem arises: While waiting for input from "getReply()" it may not process the events needed for making this reply and thereby causing a deadlock.
    Do you know any good solutions for this problem?
    I think one possible solution might be to channel the events from the "EventQueue" to the listener of "ConfirmPanel" while waiting for the reply - but this seems to be a dirty hack (and I have not tried it so I am unaware if it is possible)...
    What do you think?

    I found the solution I wanted!
    To satisfy your curiosity jayDS:
    The reason why I could not use dialogs was because I am developing a game. Using a JDesktopPane instead of just a JLayeredPane is slower (I have tested it). But JayDS, you guided me to the solution: I read the source for JInternalFrame and found "startModal()" with the code I needed (rerouting of the events).
    Thanks for helping; jockamus, bbritta, Josh_Castagno and JayDS.
    I have appended JInternalFrame.startModal():
    try {
    if (SwingUtilities.isEventDispatchThread()) {
    EventQueue theQueue = getToolkit().getSystemEventQueue();
    while (isVisible()) {
    // This is essentially the body of EventDispatchThread
    AWTEvent event = theQueue.getNextEvent();
    Object src = event.getSource();
    // can't call theQueue.dispatchEvent, so I pasted its body here
    if (event instanceof ActiveEvent) {
    ((ActiveEvent) event).dispatch();
    } else if (src instanceof Component) {
    ((Component) src).dispatchEvent(event);
    } else if (src instanceof MenuComponent) {
    ((MenuComponent) src).dispatchEvent(event);
    } else {
    System.err.println("unable to dispatch event: " + event);
    } else
    while (isVisible())
    wait();
    } catch(InterruptedException e){}

  • GlassPane on a JLabel ?

    Hi,
    I have few question related to glassPane. I didn't get the answers in the Swing tutorial.
    1. How can I add glassPane on a specific JLabel?
    2. Is it possible to add or change glasspane on a component ( such as JLabel) after GUI initialization?
    3. Is it necessary to add glassPane on the JFrame when I want to add that on a jLabel?
    Thanks in advance.

    From the tutorial-
    The following methods are defined in JApplet, JDialog, JFrame, JInternalFrame, JRootPane, and JWindow, unless noted otherwise...
    Ok, I need a glasspane or similar transparent (if there any) on the image Icon set background with exact width and height of the image.
    Does it mean I can call -
    jLabel.getRootPane().setGlassPane(myGlassPane);According to the Tutorial it doesn't support JPanel also.
    So, any solution?

  • Use JWindow, JInternalFrame, JPanel, or JDialog

    Hello,
    My main window application extends a JFrame. When a component of the JFrame is mouse clicked,I want to open a popup window on top of this frame.
    The opened window is used to receive input from the user; with these properties: title bar, resizeable, can close with the "X" on the right side of the title bar, no minimizable or maximizable buttons on the title bar.
    1. I am very unsure whether I should use: a JWindow, JInternalFrame, JPanel, JDialog, JPopupMenu (probably not since I don't need a menu) to create the popup window. I think I should use JWindow, but am not sure.
    2. Also, I am unsure whether I can use JWindow and JInternalFrame with JFrame as the main app window.
    Thank you for your advice.

    If you want a popup window on top of this frame, you can either choose JFrame, JDialog or JWindow. They all have the own characteristics.
    JFrame: Usually application will use it as the base. Because It has a title bar with minimizable, maximizable and exit button.
    JDialog: Usually work as a option / peference / about dialog (Ex. Just click the IE about to see). Because it has a smaller title bar with only maximizable and exit button and the model setting. If model is to TRUE, that means all the other area of the window will be disable except the opened dialog own.
    JWindow: Usually use as a splash to display logo or welcome message.
    JInternalFrame: It display inside a desktop panel of JFrame. Just like the multi-documents function inside the MS Words.

  • Problem with JFrame, JInternalFrame and JDialog

    problem solved..sorry

    I have just found this post:
    http://forum.java.sun.com/thread.jspa?forumID=57&threadID=302473
    And the first way seems to be the only way to solve the problem... :(
    Now the question is, does it exist a way to refresh a JFrame after that I have uset setVisible(true)?
    If it does exist I could have something like this:
    setVisible(true)
    new panel(getInsets(););
    contpan.add(panel);
    REFRESH();

  • How do I get at a JTable on a JInternalFrame?

    I've been working on this Multiple Document Interface application, and things have been great up to this point. The user chooses to run a "report" and then selects an entity to get the info for. I then hit the database. Each row returned from the database query goes into it's own data object, which is added to an ArrayList in my custom table model, and that ArrayList is used to generate the JTable, which is then added to a ScrollPane, which is then added to the JInternalFrame, which is then added to the JDesktop pane. Good stuff, right?
    I'm now trying to add Print functionality, and I'm at a loss. What I want to do is have the user do the standard File->Print, which will print out the JTable on the currently selected inner frame. I can get a JTable to print using JTable.print(). What I can't do is find a way to get the JTable from the selected frame.
    I can get the selected frame using desktop.getSelectedFrame(), but I'm at a loss as to what to do next. I've played around with .getComponent, but I'm not having any luck. the components returned don't seem to do me any good...for example, JViewPort?
    Am I going about this the wrong way? Have I poorly designed this? Am I missing the obvious?
    Thanks,
    -Adam

    Well, if you only have a single component on the internal frame then you can use getComponent(0). But then you need to go up the parent chain to get the actual table. You will initially get the JScrollPane, then use that to get the JViewport and then use that to get the viewport component.
    Another option is to extend the JInternalFrame class and insted using the add method to add a component you create get/setTable(...) methods. Then you can save the table as a class variable before adding it the scrollpane and adding the scrollpane to the internal frame.

  • What is equivalent of JInternalFrame in JavaFX 2.0?

    what is equivalent of JInternalFrame in JavaFX 2.0?
    Actually I want to use pure javaFX 2.0 to view report created in iReport 5.0.0.
    I have used java.swing code, and now I want to use pure javaFX 2.0.
    My code in swing is as follows
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package reports;
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.HashMap;
    import net.sf.jasperreports.engine.JRException;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.view.JRViewer;
    * @author TANVIR AHMED
    public class ReportsViewer extends javax.swing.JInternalFrame {
    * Creates new form MyiReportViewer
    private ReportsViewer()
    super("Report Viewer",true,true,true,true);
    initComponents();
    setBounds(10,10,600,500);
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    public ReportsViewer(String fileName)
    this(fileName,null);
    public ReportsViewer(String fileName,HashMap parameter)
    this();
    try
    /* load the required JDBC driver and create the connection
    here JDBC Type Four Driver for MySQL is used*/
    //Class.forName("com.mysql.jdbc.Driver");
    Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "invoice", "item");
    //Connection con=DriverManager.getConnection("jdbc:mysql://localhost/inventory","root","karim");
    /*(Here the parameter file should be in .jasper extension
    i.e., the compiled report)*/
    JasperPrint print = JasperFillManager.fillReport(
    fileName, parameter, con);
    JRViewer viewer=new JRViewer(print);
    Container c=getContentPane();
    c.setLayout(new BorderLayout());
    c.add(viewer);
    catch(SQLException sqle)
    sqle.printStackTrace();
    catch(JRException jre)
    jre.printStackTrace();
    * This method is called from within the constructor to initialize the form.
    * WARNING: Do NOT modify this code. The content of this method is always
    * regenerated by the Form Editor.
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 394, Short.MAX_VALUE)
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 290, Short.MAX_VALUE)
    pack();
    }// </editor-fold>
    // Variables declaration - do not modify
    // End of variables declaration
    and
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package reports;
    import java.beans.PropertyVetoException;
    * @author TANVIR AHMED
    public class MainUI extends javax.swing.JFrame {
    * Creates new form MainUI
    public MainUI() {
    super("REPORTS");
    initComponents();
    setSize(java.awt.Toolkit.getDefaultToolkit().getScreenSize());
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
    jMenuItem1 = new javax.swing.JMenuItem();
    desktopPane = new javax.swing.JDesktopPane();
    salesTaxInv = new javax.swing.JButton();
    jLabel1 = new javax.swing.JLabel();
    supplyRegister = new javax.swing.JButton();
    PartyLedger = new javax.swing.JButton();
    menuBar = new javax.swing.JMenuBar();
    jMenuItem1.setText("jMenuItem1");
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    desktopPane.setBackground(new java.awt.Color(255, 204, 0));
    desktopPane.setBorder(new javax.swing.border.MatteBorder(null));
    desktopPane.setForeground(new java.awt.Color(255, 0, 102));
    desktopPane.setAutoscrolls(true);
    desktopPane.setFont(new java.awt.Font("Bookman Old Style", 0, 14)); // NOI18N
    desktopPane.setPreferredSize(new java.awt.Dimension(1024, 768));
    salesTaxInv.setBackground(new java.awt.Color(255, 255, 255));
    salesTaxInv.setFont(new java.awt.Font("Bookman Old Style", 1, 18)); // NOI18N
    salesTaxInv.setForeground(new java.awt.Color(204, 0, 0));
    salesTaxInv.setText("Sales Tax Invoice");
    salesTaxInv.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    salesTaxInvActionPerformed(evt);
    salesTaxInv.setBounds(20, 53, 200, 31);
    desktopPane.add(salesTaxInv, javax.swing.JLayeredPane.DEFAULT_LAYER);
    jLabel1.setFont(new java.awt.Font("Bookman Old Style", 0, 24)); // NOI18N
    jLabel1.setForeground(new java.awt.Color(50, 72, 255));
    jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    jLabel1.setText("Invoice System Reports");
    jLabel1.setBounds(0, -1, 1024, 50);
    desktopPane.add(jLabel1, javax.swing.JLayeredPane.DEFAULT_LAYER);
    supplyRegister.setFont(new java.awt.Font("Bookman Old Style", 1, 18)); // NOI18N
    supplyRegister.setForeground(new java.awt.Color(204, 0, 0));
    supplyRegister.setText("Supply Register");
    supplyRegister.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    supplyRegisterActionPerformed(evt);
    supplyRegister.setBounds(20, 100, 200, 30);
    desktopPane.add(supplyRegister, javax.swing.JLayeredPane.DEFAULT_LAYER);
    PartyLedger.setFont(new java.awt.Font("Bookman Old Style", 1, 18)); // NOI18N
    PartyLedger.setForeground(new java.awt.Color(204, 0, 0));
    PartyLedger.setText("Party Ledger");
    PartyLedger.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    PartyLedgerActionPerformed(evt);
    PartyLedger.setBounds(20, 140, 200, 30);
    desktopPane.add(PartyLedger, javax.swing.JLayeredPane.DEFAULT_LAYER);
    setJMenuBar(menuBar);
    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(desktopPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(desktopPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    pack();
    }// </editor-fold>
    private void salesTaxInvActionPerformed(java.awt.event.ActionEvent evt) {                                           
    try
    ReportsViewer myiReportViewer = new ReportsViewer("reports/INV.jasper");
    myiReportViewer.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight());
    myiReportViewer.setVisible(true);
    desktopPane.add(myiReportViewer);
    myiReportViewer.setSelected(true);
    catch (PropertyVetoException pve)
    pve.printStackTrace();
    private void supplyRegisterActionPerformed(java.awt.event.ActionEvent evt) {                                              
    try
    ReportsViewer myiReportViewer = new ReportsViewer("reports/supplyRegister.jasper");
    myiReportViewer.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight());
    myiReportViewer.setVisible(true);
    desktopPane.add(myiReportViewer);
    myiReportViewer.setSelected(true);
    catch (PropertyVetoException pve)
    pve.printStackTrace();
    private void PartyLedgerActionPerformed(java.awt.event.ActionEvent evt) {                                           
    try
    ReportsViewer myiReportViewer = new ReportsViewer("reports/CustomerLedger.jasper");
    myiReportViewer.setBounds(0, 0, desktopPane.getWidth(), desktopPane.getHeight());
    myiReportViewer.setVisible(true);
    desktopPane.add(myiReportViewer);
    myiReportViewer.setSelected(true);
    catch (PropertyVetoException pve)
    pve.printStackTrace();
    * @param args the command line arguments
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new MainUI().setVisible(true);
    // Variables declaration - do not modify
    private javax.swing.JButton PartyLedger;
    private javax.swing.JDesktopPane desktopPane;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JButton salesTaxInv;
    private javax.swing.JButton supplyRegister;
    // End of variables declaration
    Best Regards

    Dear Sir,
    I am using the swing code and running the jasper report with the above code.
    Realy!
    I start the thread with this code
    @FXML
    private void mainUiButtonAction(ActionEvent event) {
    try{
    new MainUI().setVisible(true);
    catch(Exception ex){                 
    }

  • Use of JInternalFrame in populated JFrame?

    Hi,
    For my application I'm working on a simple Help screen (I do not want to use JavaHelp). The help screen I have developed is based on a JInternalFrame. This help screen is to be filled with HTML formatted text, that I load at start up. The loading of the text file works fine.
    The application displays everything in a JFrame. When request the helpscreen is also to be displayed.
    At start up I only display a JPanel taking up only (the middle) part of the JFrame. When I request the help screen, it is displayed to the right of the JPanel.
    When I request the help screen when my JFrame has content, it is not shown. Would you know why that is? Does the help screen have to compete for screen space, and failing in it? Should I use something of an Z-order to get my Help screen to be displayed over the other content of the JFrame?
    Abel
    The following (non compilable code, it contains errors :-( ) might show what I'm trying to do:
    import java.awt.*;
    import java.awt.event.*;
    import java.io.IOException;
    import javax.swing.*;
    public class HelpScreenPlace extends JFrame implements ActionListener {
         static HelpScreenPlace helpScreenPlace;
         static JMenuBar menuBar;
         static JMenu menu;
         static JMenuItem hMenuItem;
         static JInternalFrame helpFrame;
         static JEditorPane editorScrollPane;
         static int WIDTH = 450;
         static int HEIGHT = 350;
         static JTextField userNameField;
         static JLabel unameLabel = new JLabel("Username: ", SwingConstants.RIGHT);
         static JTextField passwordField;
         static JLabel passLabel = new JLabel("Password: ", SwingConstants.RIGHT);
         public HelpScreenPlace () {
              super("HelpScreenPlace");
              menuBar = new JMenuBar();
              menu = new JMenu ("Help");
              menu.setMnemonic(KeyEvent.VK_H);
              menu.getAccessibleContext().setAccessibleDescription("Help menu");
              menuBar.add(menu);          
              // The help contents functionality
              // TODO help functionality
              hMenuItem = new JMenuItem ("Help Contents");
              hMenuItem.setMnemonic(KeyEvent.VK_H);
              // What to do to get the keyboard shortcut F1 (no ALTMASK and the like)?
              hMenuItem.addActionListener(this);
              menu.add(hMenuItem);
              add(menuBar);
         public static void createAndShowGUI() {
              helpScreenPlace = new HelpScreenPlace();
              // Add a login panel (without functionality
              JPanel logInPanel = new JPanel();
              logInPanel.setLayout(new GridLayout (3, 2)); // 3 rows, 2 columns
              logInPanel.setBounds (WIDTH, HEIGHT, WIDTH, HEIGHT);
              userNameField = new JTextField ("jdoe", 10);
              passwordField = new JPasswordField("unanimous_unite", 10);
              logInPanel.add (unameLabel);
              logInPanel.add (userNameField);
              logInPanel.add(passLabel);
              logInPanel.add(passwordField);
              JComponent okButton = createButtonPanel();
              logInPanel.add(okButton);
              // An empty panel to fill up the empty spot after the button
              JPanel emptyPanel = new JPanel();
              emptyPanel.setBackground(Color.WHITE);
              logInPanel.add(emptyPanel);
              logInPanel.setSize(WIDTH, HEIGHT);
              logInPanel.setVisible (true);
         static JComponent createButtonPanel() {
              JPanel panel = new JPanel(new GridLayout(0,1));
              JButton okButton = new JButton("OK");
              okButton.setActionCommand("OK");
              // okButton.addActionListener(this); // Cannot use this in static reference (1st error)
              panel.add(okButton);
              return panel;
         public void actionPerformed (ActionEvent event) {
              String message = event.getActionCommand();
              if (message.equals("Help Contents")) {
                   helpFrame = new HelpFrame(); //  cannot convert from HelpScreenPlace.HelpFrame to JInternalFrame (2nd error)
                   helpFrame.setVisible(true);
                   add(helpFrame);
         public static void main(String[] args) {
              javax.swing.SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        createAndShowGUI();
         private class CloseListener extends WindowAdapter {
              public void windowClosing (WindowEvent we) {
                   System.exit(0);
            // - Syntax error on token "class", invalid Type
         // - Syntax error on token "extends", throws expected (etc on errors)
         private static class HelpFrame() extends JInternalFrame {
              super ("Help",
                        true,          // HelpFrame is resizable
                        true,          // HelpFrame is closable
                        true,          // HelpFrame is maximixable
                        true);          // HelpFrame is iconifiable
              // Get the helpPane from the model
              helpPane = model.getHelpPane();
              helpPane.setBackground(Color.WHITE);
              // Add helpPane to JScrollPane
              JEditorPane editorPane = getHelpPane();
              JScrollPane editorScrollPane = new JScrollPane(editorPane);
              editorScrollPane.setVerticalScrollBarPolicy(
                        JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
              editorScrollPane.setSize(250, 500);
              // editorScrollPane.setPreferredSize(new Dimension(250, 500));
              editorScrollPane.setMinimumSize(new Dimension(10, 10));
              add(editorScrollPane);
         JEditorPane getHelpPane() {
              JEditorPane pane = new JEditorPane();
              pane.setEditable(false); // Not editable
              java.net.URL helpURL = HelpFrame.class.getResource("HelpWindow.html");
              if (helpURL != null) {
                   try {
                        System.out.println ("Getting help file " + helpURL);
                        pane.setPage(helpURL);
                   } catch (IOException e) {
                        System.out.println ("Attempted to read a bad URL: " + helpURL);
              } else {
                   System.out.println ("Couldn't find file: HelpWindow.html");
              return pane;
    }For what it's worth, this is the HelpWindow.html file:
    <html>
    <body>
    This is the help file for this project.<p>
    <p>
    <p>
    <p>
    <p>
    <p>
    <p>
    <p>
    </body>
    </html>

    JInternalFrame's are meant to live in JDesktopPanes. Of course, they dont' strickly have to, but you aren't going to get it to act properly like an internal frame without jumping thru a lot of hoops. At least try packing or setting the size of the internal frame when you add it. If your layout is a border layout, then you're probably replacing the contents of the frame. And anyway, I don't see in your code where you are actually adding the main UI to the frame in the first place.
    Of course, you can wrap your whole UI in a JDesktopPane so that the main display is a panel filling the whole desktop pane on a layer, then add the help frame in there on a higher layer.
    Or maybe just not worry about internal frames and use a JDialog or another JFrame instead.
    Edited by: bsampieri on Apr 15, 2008 10:57 AM

  • Problem with a template method in JDialog

    Hi friends,
    I'm experiencing a problem with JDialog. I have a base abstract class ChooseLocationDialog<E> to let a client choose a location for database. This is an abstract class with two abstract methods:
    protected abstract E prepareLocation();
    protected abstract JPanel prepareForm();Method prepareForm is used in the constructor of ChooseLocationDialog to get a JPanel and add it to content pane.
    Method prepareLocation is used to prepare location of a database. I have to options - local file and networking.
    There are two subclasses ChooseRemoteLocationDialog and ChooseLocalFileDialog.
    When I start a local version, ChooseLocalFileDialog with one input field for local file, everything works fine and my local client version starts execution.
    The problem arises when I start a network version of my client. Dialog appears and I can enter host and port into the input fields. But when I click Select, I get NullPointerException. During debugging I noticed that the values I entered into these fields ("localhost" for host and "10999" for port) were not set for corresponding JTextFields and when my code executes getText() method for these input fields it returns empty strings. This happens only for one of these dialogs - for the ChooseRemoteLocationDialog.
    The code for ChooseLocationDialog class:
    public abstract class ChooseLocationDialog<E> extends JDialog {
         private E databaseLocation;
         private static final long serialVersionUID = -1630416811077468527L;
         public ChooseLocationDialog() {
              setTitle("Choose database location");
              setAlwaysOnTop(true);
              setModal(true);
              Container container = getContentPane();
              JPanel mainPanel = new JPanel();
              //retrieving a form of a concrete implementation
              JPanel formPanel = prepareForm();
              mainPanel.add(formPanel, BorderLayout.CENTER);
              JPanel buttonPanel = new JPanel(new GridLayout(1, 2));
              JButton okButton = new JButton(new SelectLocationAction());
              JButton cancelButton = new JButton(new CancelSelectAction());
              buttonPanel.add(okButton);
              buttonPanel.add(cancelButton);
              mainPanel.add(buttonPanel, BorderLayout.SOUTH);
              container.add(mainPanel);
              pack();
              Toolkit toolkit = Toolkit.getDefaultToolkit();
              Dimension screenSize = toolkit.getScreenSize();
              int x = (screenSize.width - getWidth()) / 2;
              int y = (screenSize.height - getHeight()) / 2;
              setLocation(x, y);
              addWindowListener(new WindowAdapter() {
                   @Override
                   public void windowClosing(WindowEvent e) {
                        super.windowClosing(e);
                        System.exit(0);
         public E getDatabaseLocation() {
                return databaseLocation;
         protected abstract E prepareLocation();
         protected abstract JPanel prepareForm();
          * Action for selecting location.
          * @author spyboost
         private class SelectLocationAction extends AbstractAction {
              private static final long serialVersionUID = 6242940810223013690L;
              public SelectLocationAction() {
                   putValue(Action.NAME, "Select");
              @Override
              public void actionPerformed(ActionEvent e) {
                   databaseLocation = prepareLocation();
                   setVisible(false);
         private class CancelSelectAction extends AbstractAction {
              private static final long serialVersionUID = -1025433106273231228L;
              public CancelSelectAction() {
                   putValue(Action.NAME, "Cancel");
              @Override
              public void actionPerformed(ActionEvent e) {
                   System.exit(0);
    }Code for ChooseLocalFileDialog
    public class ChooseLocalFileDialog extends ChooseLocationDialog<String> {
         private JTextField fileTextField;
         private static final long serialVersionUID = 2232230394481975840L;
         @Override
         protected JPanel prepareForm() {
              JPanel panel = new JPanel();
              panel.add(new JLabel("File"));
              fileTextField = new JTextField(15);
              panel.add(fileTextField);
              return panel;
         @Override
         protected String prepareLocation() {
              String location = fileTextField.getText();
              return location;
    }Code for ChooseRemoteLocationDialog
    public class ChooseRemoteLocationDialog extends
              ChooseLocationDialog<RemoteLocation> {
         private JTextField hostField;
         private JTextField portField;
         private static final long serialVersionUID = -2282249521568378092L;
         @Override
         protected JPanel prepareForm() {
              JPanel panel = new JPanel(new GridLayout(2, 2));
              panel.add(new JLabel("Host"));
              hostField = new JTextField(15);
              panel.add(hostField);
              panel.add(new JLabel("Port"));
              portField = new JTextField(15);
              panel.add(portField);
              return panel;
         @Override
         protected RemoteLocation prepareLocation() {
              String host = hostField.getText();
              int port = 0;
              try {
                   String portText = portField.getText();
                   port = Integer.getInteger(portText);
              } catch (NumberFormatException e) {
                   e.printStackTrace();
              RemoteLocation location = new RemoteLocation(host, port);
              return location;
    }Code for RemoteLocation:
    public class RemoteLocation {
         private String host;
         private int port;
         public RemoteLocation() {
              super();
         public RemoteLocation(String host, int port) {
              super();
              this.host = host;
              this.port = port;
         public String getHost() {
              return host;
         public void setHost(String host) {
              this.host = host;
         public int getPort() {
              return port;
         public void setPort(int port) {
              this.port = port;
    }Code snippet for dialog usage in local client implementation:
    final ChooseLocationDialog<String> dialog = new ChooseLocalFileDialog();
    dialog.setVisible(true);
    location = dialog.getDatabaseLocation();
    String filePath = location;Code snippet for dialog usage in network client implementation:
    final ChooseLocationDialog<RemoteLocation> dialog = new ChooseRemoteLocationDialog();
    dialog.setVisible(true);
    RemoteLocation location = dialog.getDatabaseLocation();Exception that I'm getting:
    Exception occurred during event dispatching:
    java.lang.NullPointerException
         at suncertify.client.gui.dialog.ChooseRemoteLocationDialog.prepareLocation(ChooseRemoteLocationDialog.java:42)
         at suncertify.client.gui.dialog.ChooseRemoteLocationDialog.prepareLocation(ChooseRemoteLocationDialog.java:1)
         at suncertify.client.gui.dialog.ChooseLocationDialog$SelectLocationAction.actionPerformed(ChooseLocationDialog.java:87)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
         at java.awt.Component.processMouseEvent(Component.java:6134)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
         at java.awt.Component.processEvent(Component.java:5899)
         at java.awt.Container.processEvent(Container.java:2023)
         at java.awt.Component.dispatchEventImpl(Component.java:4501)
         at java.awt.Container.dispatchEventImpl(Container.java:2081)
         at java.awt.Component.dispatchEvent(Component.java:4331)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
         at java.awt.Container.dispatchEventImpl(Container.java:2067)
         at java.awt.Window.dispatchEventImpl(Window.java:2458)
         at java.awt.Component.dispatchEvent(Component.java:4331)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
         at java.awt.Dialog$1.run(Dialog.java:1046)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)java version "1.6.0"
    OpenJDK Runtime Environment (build 1.6.0-b09)
    OpenJDK Client VM (build 1.6.0-b09, mixed mode, sharing)
    OS: Ubuntu 8.04
    Appreciate any help.
    Thanks.
    Edited by: spyboost on Jul 24, 2008 5:38 PM

    What a silly error! I have to call Integer.parseInt instead of getInt. Integer.getInt tries to find a system property. A small misprint, but a huge amount of time to debug. I always use parseInt method and couldn't even notice that silly misprint. Sometimes it's useful to see the trees instead of whole forest :)
    It works perfectly. Sorry for disturbing.

  • File file chooser

    Hi.
    I have a JFrame (main frame), that opens another JFrame (popup frame) when u click a button, and in this frame I have a file chooser. The problem is, when i open the file chooser, the popup frame closes (shuts down) while the main frame stais put. How can i prevent the popup frame from closing when clicking the file chooser button?
    here's the code for the file chooser:
    FileChooser fc = new FileChooser();
    int returnVal = fc.showOpenDialog(this);
    if (returnVal == JFileChooser.APPROVE_OPTION)
    File file = fc.getSelectedFile();
    String fileName = file.getName();
    JDialog chooseFileFrame = new JDialog();
    Container content2 = chooseFileFrame.getContentPane();
    content2.show();

    Nope. both main frame and popup frame are JFrames. Here's the rest of the code:
    I have a JFrame, fullcreen, contains a button Button_popup, that calls a new JFrame:
    //call file chooser button
    JButton chooseFileButton = new JButton("choose file");
    //popup frame (that closes when i opens the file chooser
    JFrame popUp= new JFrame("Heading");
    popUp.setUndecorated(true);
    popUp.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
    popUp.setBounds(0,0,600,500);
    Container content = popUp.getContentPane();
    content.setBackground(Color.white);
    content.add(chooseFileButton);
    adds the file chooser button to my action listener, if hit:
    private void chooseFile()
    if (returnVal == JFileChooser.APPROVE_OPTION)
    File file = fc.getSelectedFile();
    String file= file.getName();
    JDialog fileChooserDialog= new JDialog();
    Container content = fileChooserDialog.getContentPane();
    content.show();
    }

  • Windows Crashes with JRE 1.4.2  When Moving around JDialog

    Hi!
    I work on a Java Applet/application that was originally written to run on java 1.1 -- only AWT that too. Recently I managed to convince my manager (and his manager and his manager) to migrate from the AWT framework on java 1.1 (Microsoft JVM that is ) to Swing/JFC on Sun Java 1.4.2 ... it took a lot of explaining, demostrating, begging, pleading etc., to get this project funded.
    Now, my app is all developed in JFC and ready for deployment and during testing found a potential show stopper -- When a Dialog Box or any moveable componant (internal windows etc) is moved around (holding down the mouse on the title bar of a dialog and dragging it around), the OS simply froze up ... nothing could be done other than power cycling the PC. Does anyone know if its a bug in JRE 1.4.2 and if it has been fixed?? This could potentially result in rolling back to AWT :(( .... and of course me looking like a fool in front of my manager!!
    ..... Please provide any suggestion other than moving to JRE 1.5.x beta. I've also noticed this happening in other Java Applications (Netbeans for example). So, I think this is a major bug the JRE 1.4.2.
    A million thanks and few Duke Dollars for anyone pointing me in the right direction.
    Note:
    1. This problem is not just with my app ... some other java apps that are installed on my workstation (like netbeans) behave the same when Moving Around dialog boxes.
    2. The behaviour is very random. But it has happened multiple times (and the very first time my manager run our app on jre 1.4.2)
    I would give a million dollars if I had them. But for now, please do with the million thanks and few duke dollars.

    Have you tried this on another machine?Yes ... actually this has happened on a few workstations here ... all of them are Pentium IV based dell workstations running Windows 2000.
    What exact version of 1.4.2 did you download?Java(TM) Plug-in: Version 1.4.2_04
    Using JRE version 1.4.2_04 Java HotSpot(TM) Client VM
    Have you searched the bug database? This one could be related to yours:
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4673572
    This sounds similar but the difference is its not just the app that feezes up (so that you could do an alt+ctrl+del and kill it)..... the OS freezes up and you can move the mouse around still the system even queu e is not full and eventuall all I hear is the beeping. At this point I've to power cycle.
    Is there any way you could post the code or is it too big? Or, have you tried just creating a very small >application or applet that just shows one dialog, and if so, does that show the same problem? (What I'm >trying to get at here is - is it something in your code that is causing this, or something in the JRE, or >perhaps something to do with your machine's configuration/OS?)Unfortunately I cannot post the code ... its company rules and regulations. I've tried creating a very small app and it appears to work ok .... but randomly causes this freeze up. There is no definate pattern (except that it happens when you move around a JDialog or a JInternalFrame) . It could freeze up some time and work perfectly fine at other times. It has actually happened on other applications too (Netbeans, JEdit etc). That's why I suspect this might be a obscure bug in the JRE.
    I'll try to find a pattern so that it can be re-produced by everyone.
    Thanks for the help.

  • JTable can't display column names and scroll bar in JDialog !!

    Dear All ,
    My flow of program is JFrame call JDialog.
    dialogCopy = new dialogCopyBay(frame, "Bay Name Define", true, Integer.parseInt(txtSourceBay.getText()) ,proVsl ,300 ,300);
    dialogCopy.setBounds(0, 0, 300, 300);
    dialogCopy.setVisible(true);        Then,I set the datasource of JTable is from a TableModel.
    It's wild that JTable can diplay the data without column names and scroll bar.
    I have no idea what's going wrong.Cause I follow the Sun Tutorial to code.
    Here with the code of my JDialog.
    Thanks & Best Regards
    package com.whl.panel;
    import com.whl.vslEditor.vslDefine;
    import java.awt.Container;
    import java.awt.Dimension;
    import java.awt.Frame;
    import javax.swing.JDialog;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.AbstractTableModel;
    public class dialogCopyBay extends JDialog {
        vslDefine glbVslDefine;
        int lvCnt = -1;
        JTable tableCopyBay;
        int bgnX = 0;
        int bgnY = 30;
        int tableWidth = 100;
        int tableHeight = 100;
        public dialogCopyBay(Frame frame, String title, boolean modal, int sourceBay,
                vslDefine pVslDefine, int ttlWidth, int ttlHeight) {
            super(frame, title, true);
            Container contentPane = getContentPane();
            System.out.println("dialogCopyBay Constructor");
            glbVslDefine = null;
            glbVslDefine = pVslDefine;
            copyBayModel copyBay = new copyBayModel((glbVslDefine.getVslBayStructure().length - 1),sourceBay);
            tableCopyBay = new JTable(copyBay);
            tableCopyBay.setPreferredScrollableViewportSize(new Dimension(tableWidth, tableHeight));
            JScrollPane scrollPane = new JScrollPane(tableCopyBay);
            scrollPane.setViewportView(tableCopyBay) ;
            tableCopyBay.setFillsViewportHeight(true);
            tableCopyBay.setBounds(bgnX, bgnY, tableWidth, tableHeight);
            tableCopyBay.setBounds(10, 10, 100, 200) ;
            contentPane.setLayout(null);
            contentPane.add(scrollPane);
            contentPane.add(tableCopyBay);
        class copyBayModel extends AbstractTableModel {
            String[] columnNames;
            Object[][] dataTarget;
            public copyBayModel(int rowNum ,int pSourceBay) {
                columnNames = new String[]{"Choose", "Bay Name"};
                dataTarget = new Object[rowNum][2];
                for (int i = 0; i <= glbVslDefine.getVslBayStructure().length - 1; i++) {
                    if (pSourceBay != glbVslDefine.getVslBayStructure().getBayName() &&
    glbVslDefine.getVslBayStructure()[i].getIsSuperStructure() == 'N') {
    lvCnt = lvCnt + 1;
    dataTarget[lvCnt][0] = false;
    dataTarget[lvCnt][1] = glbVslDefine.getVslBayStructure()[i].getBayName();
    System.out.println("lvCnt=" + lvCnt + ",BayName=" + glbVslDefine.getVslBayStructure()[i].getBayName());
    public int getRowCount() {
    return dataTarget.length;
    public int getColumnCount() {
    return columnNames.length;
    public String getColumnName(int col) {
    return columnNames[col];
    public Object getValueAt(int rowIndex, int columnIndex) {
    return dataTarget[rowIndex][columnIndex];
    public Class getColumnClass(int c) {
    return getValueAt(0, c).getClass();
    public boolean isCellEditable(int row, int col) {
    if (col == 1) {
    // Bay Name Not Allow To modify
    return false;
    } else {
    return true;
    public void setValueAt(Object value, int row, int col) {
    dataTarget[row][col] = value;
    fireTableCellUpdated(row, col);

    Dear DB ,
    I am not sure what you mean.
    Currently,I don't undestand which code is error.
    And I also saw some example is add JTable and JScrollPane in JDialog.
    Like Below examle in Sun tutorial
    public class ListDialog extends JDialog implements MouseListener, MouseMotionListener{
        private static ListDialog dialog;
        private static String value = "";
        private JList list;
        public static void initialize(Component comp,
                String[] possibleValues,
                String title,
                String labelText) {
            Frame frame = JOptionPane.getFrameForComponent(comp);
            dialog = new ListDialog(frame, possibleValues,
                    title, labelText);
         * Show the initialized dialog. The first argument should
         * be null if you want the dialog to come up in the center
         * of the screen. Otherwise, the argument should be the
         * component on top of which the dialog should appear.
        public static String showDialog(Component comp, String initialValue) {
            if (dialog != null) {
                dialog.setValue(initialValue);
                dialog.setLocationRelativeTo(comp);
                dialog.setVisible(true);
            } else {
                System.err.println("ListDialog requires you to call initialize " + "before calling showDialog.");
            return value;
        private void setValue(String newValue) {
            value = newValue;
            list.setSelectedValue(value, true);
        private ListDialog(Frame frame, Object[] data, String title,
                String labelText) {
            super(frame, title, true);
    //buttons
            JButton cancelButton = new JButton("Cancel");
            final JButton setButton = new JButton("Set");
            cancelButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ListDialog.dialog.setVisible(false);
            setButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ListDialog.value = (String) (list.getSelectedValue());
                    ListDialog.dialog.setVisible(false);
            getRootPane().setDefaultButton(setButton);
    //main part of the dialog
            list = new JList(data);
            list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
            list.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent e) {
                    if (e.getClickCount() == 2) {
                        setButton.doClick();
            JScrollPane listScroller = new JScrollPane(list);
            listScroller.setPreferredSize(new Dimension(250, 80));
    //XXX: Must do the following, too, or else the scroller thinks
    //XXX: it's taller than it is:
            listScroller.setMinimumSize(new Dimension(250, 80));
            listScroller.setAlignmentX(LEFT_ALIGNMENT);
    //Create a container so that we can add a title around
    //the scroll pane. Can't add a title directly to the
    //scroll pane because its background would be white.
    //Lay out the label and scroll pane from top to button.
            JPanel listPane = new JPanel();
            listPane.setLayout(new BoxLayout(listPane, BoxLayout.Y_AXIS));
            JLabel label = new JLabel(labelText);
            label.setLabelFor(list);
            listPane.add(label);
            listPane.add(Box.createRigidArea(new Dimension(0, 5)));
            listPane.add(listScroller);
            listPane.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
    //Lay out the buttons from left to right.
            JPanel buttonPane = new JPanel();
            buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.X_AXIS));
            buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
            buttonPane.add(Box.createHorizontalGlue());
            buttonPane.add(cancelButton);
            buttonPane.add(Box.createRigidArea(new Dimension(10, 0)));
            buttonPane.add(setButton);
    //Put everything together, using the content pane's BorderLayout.
            Container contentPane = getContentPane();
            contentPane.add(listPane, BorderLayout.CENTER);
            contentPane.add(buttonPane, BorderLayout.SOUTH);
            pack();
        public void mouseClicked(MouseEvent e) {
            System.out.println("Mouse Click");
        public void mousePressed(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        public void mouseReleased(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        public void mouseEntered(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        public void mouseExited(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        public void mouseDragged(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
        public void mouseMoved(MouseEvent e) {
            throw new UnsupportedOperationException("Not supported yet.");
         * This is here so that you can view ListDialog even if you
         * haven't written the code to include it in a program.
    }

  • File Chooser is displaying names of the Files and Directories as boxes

    Hi All,
    Actually i am working on an application in which i have the requirement to internationalize the File Chooser in All Operating Systems. The application is working properly for all languages on MAC OS, but not working properly for the language Telugu on both the Ubuntu and Windows OS. The main problem is, when i try to open the File Chooser after setting the language to TELUGU all the labels and buttons in the File Chooser are properly internationalized but names of Files and directories in the File Chooser are displaying as boxes.
    So please provide your suggestions to me.
    Thanks in Advance
    Uday.

    I hope this can help you:
    package it.test
    import java.awt.BorderLayout;
    import java.awt.Frame;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Locale;
    import javax.swing.JButton;
    import javax.swing.JDialog;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    * @author Alessandro
    public class Test extends JDialog {
         private JFileChooser fc = null;
         private Frame bfcParent = null;
         public Test(Frame parent, boolean modal) {
              super(parent, modal);
              this.bfcParent = parent;
              if (fc == null) {
                   fc = new JFileChooser();
                   fc.setAcceptAllFileFilterUsed(false);
                   fc.setLocale(Locale.ITALIAN);//i think you should use english
                   //these are in telugu
                   UIManager.put("FileChooser.openDialogTitleText", "Open Dialog");
                   UIManager.put("FileChooser.saveDialogTitleText", "Save Dialog");
                   UIManager.put("FileChooser.lookInLabelText", "LookIn");
                   UIManager.put("FileChooser.saveInLabelText", "SaveIn");
                   UIManager.put("FileChooser.upFolderToolTipText", "UpFolder");
                   UIManager.put("FileChooser.homeFolderToolTipText", "HomeFolder");
                   UIManager.put("FileChooser.newFolderToolTipText", "New FOlder");
                   UIManager.put("FileChooser.listViewButtonToolTipText", "View");
                   UIManager.put("FileChooser.detailsViewButtonToolTipText", "Details");
                   UIManager.put("FileChooser.fileNameHeaderText", "Name");
                   UIManager.put("FileChooser.fileSizeHeaderText", "Size");
                   UIManager.put("FileChooser.fileTypeHeaderText", "Type");
                   UIManager.put("FileChooser.fileDateHeaderText", "Date");
                   UIManager.put("FileChooser.fileAttrHeaderText", "Attr");
                   UIManager.put("FileChooser.fileNameLabelText", "Label");
                   UIManager.put("FileChooser.filesOfTypeLabelText", "filesOfType");
                   UIManager.put("FileChooser.openButtonText", "Open");
                   UIManager.put("FileChooser.openButtonToolTipText", "Open");
                   UIManager.put("FileChooser.saveButtonText", "Save");
                   UIManager.put("FileChooser.saveButtonToolTipText", "Save");
                   UIManager.put("FileChooser.directoryOpenButtonText", "Open Directory");
                   UIManager.put("FileChooser.directoryOpenButtonToolTipText", "Open Directory");
                   UIManager.put("FileChooser.cancelButtonText", "Cancel");
                   UIManager.put("FileChooser.cancelButtonToolTipText", "Cancel");
                   UIManager.put("FileChooser.newFolderErrorText", "newFolder");
                   UIManager.put("FileChooser.acceptAllFileFilterText", "Accept");
                   fc.updateUI();
         public int openFileChooser() {
              fc.setDialogTitle("Open File");
              fc.resetChoosableFileFilters();
              int returnVal = 0;
              fc.setDialogType(JFileChooser.OPEN_DIALOG);
              returnVal = fc.showDialog(this.bfcParent, "Apri File");
              //Process the results.
              if (returnVal == JFileChooser.APPROVE_OPTION) {
                   System.out.println("Hai scelto di aprire un file");
              } else {
                   System.out.println("hai annullato l'apertura");
              return returnVal;
         private static void createAndShowGUI() {
              JFrame frame = new JFrame("FileChooser");
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              JPanel jp = new JPanel(new BorderLayout());
              JButton openButton = new JButton("Open File");
              final Test test = new Test(frame, true);
              openButton.addActionListener(new ActionListener() {
                   @Override
                   public void actionPerformed(ActionEvent e) {
                        test.openFileChooser();
              openButton.setEnabled(true);
              jp.add(openButton, BorderLayout.AFTER_LAST_LINE);
              //Add content to the window.
              frame.add(jp);
              //Display the window.
              frame.pack();
              frame.setVisible(true);
         public static void main(String[] args) {
              //Schedule a job for the event dispatch thread:
              //creating and showing this application's GUI.
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        //Turn off metal's use of bold fonts
                        createAndShowGUI();
    }bye ale

Maybe you are looking for

  • -- newb.. dvd video size?

    i have a 3d demo reel i wanna show to potential employers 640 by 480 DV .....3.5 mins....quicktime h.264....29.97...size 550 mb problem 1: I thought about simply adding the video file itself to a DVD but when on other computers ( two differint laptop

  • Error al instalar Creative Cloud para escritorio. (Código de error: 1)

    Hola, estoy recibiendo el error con código 1 cuando trato de instalar creative cloud para escritorio, Alguien que me pueda ayudar?

  • HT4528 digitalskins will not sync on my iphone realtree app

    anyone able to download realtree digital skins app.  I am unable to sync

  • Existing Template editing issues

    My webmaster no longer works with my company and I need to edit an existing template on one of my sites. I have downloaded the entire site opened templates and edited same saved as a template and re uploaded. Does not show any improvements...please a

  • Firefox Error after update to 27.0

    My problem is after updating firefox to the current version 27.0, firefox simply doesn't open; Here is what shows up in terminal: XPCOMGlueLoad error for file /usr/lib/firefox/libxul.so: /usr/lib/libnss3.so: version `NSS_3.15.4' not found (required b