JDialog - gettting data from j

hi!
I have created class(say A) extending JInternaFrame and also I have created a class (Say B) extending JDialog. I am trying to call an instance(IB) of B from an instance(A) of A. I am setting the modal to true in the B. when I enter some data in IB I have to pass the data to IA. I could not do this. Can anyone please let me know where I am going wrong in the logical flow? I have tried using the "JDialog(Dialog owner, String title, boolean modal) " constructor as well but this gives a class caste exception.
Below is the code...
=========
class A
private void getDialogData(){
IA dmnsnInfo = new IA(strScrnFlag,
strFactType,
strDmnsnTypeId,
hshDmnsnIdName,
"",this);
// I need the data of the IB to be accessed here.
======
Constructor of 'B' which extends JDialog . I've tried using both the constructors of JDialog
public IB(Frame owner, String title, boolean modal) //this gives class caste exception
//public BaseDialog()
super(owner, "title", true);
// super.setModal(modal);
Please let me know where I am going wrong..
Thanks,
Sachin Parandker

In general the way to retrieve data from dialogs is to put the data into fields within the dialog. Then you retrieve them after the dialog is disposed. Note though that the use of JDialog is not recommended in a MDI (Internal Frames) context. Though it basically works JDialogs are too modal, they lock out other window activity.
So you do something like (using JDialog).
class MyDialog extends JDialog {
  String resultsString = null;
  public MyDialog(Frame dlgFrame) {
    super(dlgFrame, "A Title", true);
    JButton ok = new JButton("OK");
    ok.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
       resultsString = editField.getText();
       dispose();
public void doDialog(Frame parent) {
  MyDialog new MyDialog(parent);
  dlg.show();
  // doesn't get here until dialog is closed
  if(dlg.resultString != null) {
     theValue = dlg.resultString;
     } else {
.. dialog was cancelled
}You can use a JInternalFrame as a "thread modal" dialogue which suspends just the thread that calls it, rather than the whole GUI. After the invoking code invokes show() it should wait() on some convenient object.
Then overide the dispose method of the JInternalFrame so that (having called super.dispose(), it notifies the object in question and ends the wait. However it's crucial that you don't do this from the AWT event dispatching thread (which is likely to happen if it's run directly from an event).

Similar Messages

  • Returning data from child jdialog...problem

    Hello
    I have a parent form which calls a jdialog. I need to return data from the jdialog.
    So i have this class which contains the varaibles i want to set.
    public class ProtocolRecordType {
    public int num;
    public String name;
    I from my main i call this class and method. Now i seem to be able to set object values to try and do a pass by reference in teh constructor, but if i use the same variable in a method it says unresolved symbol. Most of the code was generated with netbeans ide.
    Can anybody explain this to me ?
    Thanks
    public class ProtocolsDialog extends javax.swing.JDialog {
    / Creates new form ProtocolsDialog */
    public ProtocolsDialog(java.awt.Frame parent, boolean modal, ProtocolRecordType protocol ) {
    super(parent, modal);
    initComponents();
    System.out.println("done constructor");
    // public int y=0;
    protocol.name="protoname"; <==========setting it here works, i can print this out when it returns to parent frame.
    private void Protocol1ActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:
    //protocol.name="aaaa";
    // ProtocolRecordType.name="";
    System.out.println("proto1 selected");
    protocol.name=("xxxtest"); +<=================this says cannot find symbol protocol.name+
    }

    Check out tjacobs.ui.dialogs.ParamDialog and tjacobs.ui.ex.SetupPane in TUS for two easy ways to do this

  • Passing data from one frame to another frame

    hello all, i am having a problem with passing data from one frame from another. I have a main frame when you click on connect button it display the second frame(class) that has 2 text fields and 2 buttons. When i click on connect it check if the data is correct. If the data is correct i want that frame to close and pass the data back to main frame. How can i do that.
    thank you

    hello all, i am having a problem with passing data
    from one frame from another. I have a main frame when
    you click on connect button it display the second
    frame(class) that has 2 text fields and 2 buttons.
    When i click on connect it check if the data is
    correct. If the data is correct i want that frame to
    close and pass the data back to main frame. How can
    i do that.
    thank you
    the original problem sounded like an ideal opportunity to use Modal Dialog. if you want one frame to display another to get user input then you need to stop the method in the main frame from executing until you recieve a valid input.
    you can use your own class and keep all of the components that you have in the connect frame but you would have to extend JDialog instead of JFrame.
    there is a way around it!
    if you must use JFrame for both, then you need to have access to the main frame in the connect frame, maybe pass the pointer to the constructor??
    anyway, when the connect frame is done with its duties, you have to use the pointer to call another method in the main frame that will continue the process. otherwise main frame doesn't know when connect frame is done and by that time, the method in main frame that instantiated the connect frame has long since died.
    also, it allows things to happen in the other window that you may not want to happen until the connect frame is done
    typically users of software start clicking around on things and you could have three or four connect frames going at the same time
    it's really best to use a Modal Dialog, it really can look just like a JFrame!!!!!!!!!!!!!!

  • Transfering data from a dialog to the parent

    I have an app that calls a dialog from the pull down menu.
    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        ConnectionBox dialog = new ConnectionBox(new javax.swing.JFrame(), true);
        JFrame mainFrame = DBToolsApp.getApplication().getMainFrame();
        dialog.setLocationRelativeTo(mainFrame);
        dialog.setVisible(true);
    }On that dialog I have several text fields. I want to set some strings in the parent app with the values returned form the text fields on the dialog.
    Does anyone know of an example of how to return data from the dialog back to the parent app?
    Thanks!

    It appears that you are using NetBeans and making a Java Desktop Application. And the code you have given should be in the FrameView which should be named DBToolsView in your case, isn't it?
    So, this is what I usually do:
    1- Frame view has the string fields along with their getters or setters (which you already have).
    2- Make constructor in the dialog which accepts the frame view object also in addition to frame. Also, make a FrameView field in the dialog (in your case it is ConnectionBox)
    3- The dialog should also have OK and Cancel buttons.
    4- On clicking OK set the string in frame view using the frame view reference and various setters and dispose the dialog.
    5- On Cancel just dispose the dialog.
    So, your action performed method in frame view would look like:
    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        JFrame mainFrame = DBToolsApp.getApplication().getMainFrame();
        ConnectionBox dialog = new ConnectionBox(this, mainFrame, true);
        dialog.setLocationRelativeTo(mainFrame);
        dialog.setVisible(true);
    }The ConnectionBox class should look like this:
    class ConnectionBox extends JDialog
          FrameView view;
          public ConnectionBox (FrameView view, Frame parent, boolean modal){
                super(parent, modal);
                this.view=view;
                initComponents(); // for NetBeans VE
         private okActionPerformed(){
                view.setString1(jtextField1.getText());
                view.setString2(jtextField2.getText());
                // and so on
                dispose();
        private cancelActionPerformed(){
                dispose();
    // other methods..... VE generated code, etc.
    }// end classAlso you could have used JOptionPane if you had to set single string, see this , but I don't know how we can return multiple strings using JOptionPane, though it must be possible because showInputDialog returns Object. Anyway, I don't know about option pane much.
    But the method given in this reply would perhaps work for you, and I find it the easiest.
    Thanks!
    Remark: I was really bored.....the reason for this long reply for simple question ;-)

  • Removing Data from a Database using JList

    Hi,
    I have the following JList with a "Remove" button.
    I have managed to populate the JList with entries from the DataBase but now i am having problems removing the data from the data base using the JList.
    What i am trying to achieve is, when an entry is selected from the JList and the "Remove" button is hit, the entry should be removed from the JList and from the database.
    How do i do this, please help..
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import javax.swing.*;
    public class RemoveD extends JDialog {
        private JList list;
        private JButton removeButton;
        private JScrollPane scrollPane;
        private Connection conn = null;
        private Statement stat = null;
        private ResultSet rs = null;
        String names = new String();
        private DefaultListModel listModel = new DefaultListModel();
        public RemoveD(Frame parent, boolean modal) {
            super(parent, modal);
            initComponents();
        private void initComponents() {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
            try {
                String userID = "";
                String psw = "";
                String url;
                url = "jdbc:mysql://localhost:3306/mqnames";
                conn = DriverManager.getConnection(url, userID, psw);
                stat = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                rs = stat.executeQuery("SELECT queueName FROM queuenametable");
                int j = 0;
                while (rs.next()) {
                    names = rs.getString(1);
                    System.out.println("rs: " + names);
                    listModel.addElement(names);
                }//end of While
                stat.close();
                conn.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            scrollPane = new JScrollPane();
            list = new JList(listModel);
            list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            removeButton = new JButton();
            setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            getContentPane().setLayout(new GridLayout(2, 0));
            scrollPane.setViewportView(list);
            getContentPane().add(scrollPane);
            removeButton.setText("Remove");
            removeButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    removeButtonActionPerformed(evt);
            getContentPane().add(removeButton);
            pack();
        private void removeButtonActionPerformed(ActionEvent evt) {
        public static void main(String args[]) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    RemoveD dialog = new RemoveD(new JFrame(), true);
                    dialog.addWindowListener(new WindowAdapter() {
                        public void windowClosing(WindowEvent e) {
                            System.exit(0);
                    dialog.setVisible(true);
    }

    Ask a specific question. Do you know how to get the selected item in the list? Do you know how to write a delete query in SQL?

  • Refreshing the Data from a embed view in a view container

    Hi everybody
    I would like to know how can I do to refresh all data from a View with a view container the problem is:
    that I have a window that has a view at the same time this has a view container.  The Main view brings the data of editable elements when I select one element of the main view the view container brings a list for that element (dependencies) but only the first time a choose an element loads the correct data, when I choose another one it brings the same old data and doesn't make the call for the wdDoInit() method.
    The question is:
    How do I force the view to refresh all the data or call again the wdDoInit() method?
    Thank you for your help

    Aida,
    Lets say you have two components C1 and C2 and you want method from C1 to be available in C2 then follow these steps:-
    1) Goto the Interface Controller of C1 and create a method there lets say doSomething
    2) Then goto C2. There you can see Used Web Dynpro Components --> Right click Add Used Component --> Give some name say C1Comp --> Click browse and select C1 --> Click Finish.
    3) Next goto Component Controller of C2 --> Properties --> Click Add and check if C1 is added. If not then select the checkbox and select OK.
    4) Now goto Implementation tab of C2 and lets say wdDoInit you can write following code:-
    wdThis.wdGetC1CompInterface().doSomething();
    Chintan

  • Issue when uploading Sales data from DSO to Cube.

    Dear All,
    I have an issue when I am uploading Sales data from DSO to Cube.  I am using BI 7.0 and I have uploaded all sales document level data to my DSO.  Then I use a transformation rule to calculate the Sales Value when I am doing DTP to cube.  Cube has customer wise aggregation data.
    In DSO I have NetPrice(KF) and Delivered_QTY(KF).  I do a simple multiplication routine in the transformation from DSO to Cube.
    RESULT =   SOURCE_FIELDS-NET_PRICE * SOURCE_FIELDS-DLV_QTY .
    At the moment I use Active Table(With out Archive) on the DSO to get the data since this is my first load.
    Issue is that the figure (Sales Value) in the cube is incorrect. I am getting a very large values which is impossible.
    Can someone please help me.
    Shanka

    Hi,
    are you sure that cube has customer wise aggregated data..since it will always aggregate the values of the key figures for the same set of characters...
    did you checked the values for the key figures as well and if even they are inflated or is the problem with this key figure only.
    During the data load the records may aggregates first for the same values of characters and then multiplication will be happening....if that is the case then you may have to multiply the values before storing it in the data package and then let it aggregate....can be achived through start routine...
    but first verify if other key figures are also having the same issue.
    Thanks
    Ajeet

  • How to create a report to bring all data from two different Info providers

    Hi All,
    I have a peculier problem while creating a report. I have two custom info providers one DSO and another Cube. There are only two common fields between these two Info providers . I need to create a report such that the report displays all the values from DSO but user can have the selection option on one of the fields in the Cube.
    Here is an example
    DSO Contents:
    DocNum-     DocItem-     DocText-     Amount-      Quantity
    10000----     10----            ABC----          100----           10
    10001----     20----     DSN----     200----     10
    10005----     20----     DSN----     200----     10
    Z1003----     10----     CAN----     500----     1
    Cube Contents
    DocNum-     DocItem-     Date-----          InvoiceAmt
    10000----     10----     1/10/2009----         50
    10001----     20----      2/20/2009----        100
    10005----     20----      2/25/2009----        100
    The report needs to be displayed as shown below when the user selects value for date from 1/10/2009 to 2/20/2009
    DocNum-     DocItem-     DocText-     Amount-      Quantity
    10000----     10----     ABC----     100----     10
    10001----     20----     DSN----     200----     10
    I hope this was clear for you to understand. I would really appricate if any one can answers about how to resolve this problem. I cannot add the date filed to DSO and I also have Doc Num and Item as the user selection fields in the report.
    Thank you all in advance and i would really appreciate for your suggestions.
    Regards
    Chinna
    Edited by: chinna2479 on Mar 3, 2009 7:38 PM
    Edited by: chinna2479 on Mar 3, 2009 7:39 PM

    Hi chinna,
    Two possible options, I can think of now, but both of them may be a compromise with performance.
    1. create an infoset and then a query on top of it, provided we have a one to one relation in both the targets. That is, the combination of doc and item number is not duplicate in either cube or ODS.
    2. Create a master data object of doc and item number and have date as an attribute. Load that from cube data and make date as navigational attr.
    Use this navgntal attr for selection in your report.
    Let us know, if you require any further info.
    Naveen.A

  • Upload data from Excel to BI

    Hi 2 all,
    Can anyone please send me the complete steps for uploading of data from excel to BI??
    Also tell me that when we use DSO or when we use infocube? and if we design query in query designer then we use info cube fields or DSO fields??
    Please respond.
    Regards,
    Aisha Ishrat
    ICI Pakistan Ltd.

    Hi,
    there is no separate Tcode for 3.5 environment... but in RSA1 itself they give 3.X functionality also.. So, if you want to follow the 3.5 procedure you can go thru that... in the Infosource tab--> select your info area -->and right clcik it.. ->in that create INFOSOURCE 3.X.. for that just right clcik ur CUBE or DSO and --> Additional functions --> Update Rules.. and like that you can follow the same procedure which you done in 3.5..
    and for data loading in BI 7.0 from fla file means
    fisrt create one Cube or DSO with the same structure which you have in flatfile..
    and activate it..
    ->now comes to Datasource tab> create one Datasource here you need to select type of data for example.. select Transactional data --> and menntion your flatfile name in extraction tab- and file type and eneter your info object names in FIELDS tab --> and load preview data Activate it..
    now select your datasource and create info package and schedule it.. now your data will loded in to PSA level...
    > and now comes to info provider select your cube.. and right clcik it.. and create transformations.,. and activate it..
    > and create DTP -- Activate it.. and Execute it..
    1)Create datasource. Here u can set/check the Soucre System fields.
    2)Create Transformation for that datasource. (no more update rules/transfer rules)
    2.1) While creating transformation for DS it will ask you for data target name, so just assign where u want to update ur data.
    DataSource -> Transformation -> (DTP)-->Data Target
    Now if you want to load data into data target from Source System Datasource:
    1) Create infopackage for that data source. If you are creating infopackage for new datasources, it will only allow you update upto PSA, all other options u can see as disabled.
    2)Now Create DTP (Data Transfer Process) for that data source.
    3) NOw schdule the Infopackage, once the data is loaded to PSA, you can execute your DTP which will load data to data target.
    Data Transfer Process (DTP) is now used to load data using the dataflow created by the Transformation. Here's how the DTP data load works:
    1) Load InfoPackage
    2) Data gets loaded into PSA (hence why PSA only is selected)
    3) DTP gets "executed"
    4) Data gets loaded from PSA into the data target once the DTP has executed
    1) Create a data source
    RSA1->Source Systems->FILE(File)->PC_FILE(Filesourcesystem)->Create Application Component(optional)-Create Data source
    2) Create the data provider
    3) Create Transformation
    Right click on the data provider, choose 'create transformation' and choose your data source (give relevant data source and its type)
    Just connect the relavant fields between your data source and data provider.
    4) Create DTP
    Then Double click on the DTP node created under yous transformations. choose the extraction mode
    5) Load the data: there are 2 ways:
    you can run the infopackage and DTP separately or create a process chain consisting of these infopackage and DTP and run.
    Also check /people/sankar.kumar/blog/2006/10/11/loading-text-filestxt-into-bw-with-hex-option for hex option
    Thanks,
    Sankar M

  • How can I Move data from one column to another in my access table?

    I have two columns, one that stores current month’s data and one that stores last month’s data. Every month data from column 2 (this month’s data) needs to be moved to column 1 that holds last month’s data. I then null out column 2 so I can accumulates this month’s data.
    I understand how to drop a column or add a column, how do I transfer data from one column to another.
    Here is my trial code:
    <cfquery name="qQueryChangeColumnName" datasource="#dsn#">
      ALTER TABLE leaderboard
      UPDATE leaderboard SET  points2 = points3
    </cfquery>
    Unfortunately, I get the following error:
    Error Executing Database Query.
    [Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] Syntax error in ALTER TABLE statement.
    How can I transfer my data with the alter table method?

    I looked up the Access SQL reference (which is probably a
    good place to start when having issues with Access SQL), and
    it suggests you probably need a WHERE clause in there.
    I agree the documentation is a good place to start. But you should not need a WHERE clause here.
    Too few parameters. Expected 1.
    If you run the SQL directly in Access, what are the results? At the very least, it should provide a more informative error message..

  • How do i transfer data from one internal tabe to another.

    Hi All,
             How do i transfer data from one internal tabe to another.
             Can i do it ebven if he tables are different in structure.
    Please Advice.
    Thanks in advance.

    Hi Saket Tiwari,
    I hope the earlier post by kashyap is good enough an answer. anywas in addition to it let me give a detailed
    explanation of how you can populate an internal table.
    1) Append data line by line.
         Syntax :  APPEND [<wa> TO / INITIAL LINE TO] <itab>.
    this appends new line to internal table <itab>.
    2) Using COLLECT statement.
                 COLLECT is another form of statement used for populating the internal tables.  Generally COLLECT is used while inserting lines into an internal table with unique standard key. The syntax for COLLECT statement is as shown
         Syntax : COLLECT [<wa> INTO] <itab>.
    3) Using INSERT statement
         Syntax  INSERT [<wa> INTO / INITIAL LINE INTO] <itab> [index <idx>].
    INSERT statement adds a line/work area to the internal table. You can specify the position at which the new line is to be added by using the INDEX clause with the INSERT statement.
    Now coming to your request..
    To append part or all of an internal table
         Syntax
                  APPEND LINES OF <itab1> [FROM <n1>] [TO <n2>] TO <itab2>.
    *     Note:
    Without the FROM and TO options, this statement appends the entire table <itab1> to <itab2>.*
    b) To insert part or all of an internal table into another internal table
         Syntax
              INSERT LINES OF <itab1> [FROM <n1>] [TO <n2>]
              INTO <itab2> [INDEX <idx>].
    c) Using Move statement.
    To copy entire contents of one table into another in one execution
         Syntax MOVE  <itab1> To <itab2>.
                   OR
              <itab1> = <itab2>.
    but u hav to be careful because he contents of itab2 will eb overwritten on the execution of this statement.
    These copy the contents of ITAB1 to ITAB2. Incase of internal tables with header line we have to use [] inorder to distinguish from work area. So, to copy contents of internal tables with header line  the syntax becomes,
    ITAB1[] = ITAB2[].
    Coming to the letter part of your question, Yes, we can copy values between tables having different structures.
    for this we use    
                                MOVE-CORRESPONDING <itab1> TO <itab2>
        this executes the statement for their header lines. Searches for the sub-fields which occur both in itab1 and itab2 and then generates, for all relevant field pairs which correspond to the
            sub-fields ni , statements of the form MOVE itab1-ni TO itab2-ni. The other fields remain unchanged.
    I hope the information provided has been of your help.
    Reward if useful.
    Regards,
    Jose

  • How do I transfer data from one exterior harddrive to another?

    How do I transfer data from one exterior harddrive to another when they are both connected to our Imac Desktop?

    Depends what you want to transfer...
    A few more Details about what you are trying to achieve would be good.

  • How can I transfer all my data from my current iCloud account to a new one?

    Hello,
    Please allow me to explain my situation:
    I currently use an iCloud account named, for example, [email protected]
    I have recently rebranded my business from www.current.com to www.new.com.
    Because of this, I would like to create a new iCloud account with an email account name of [email protected]
    I realize that I can achieve a similar result by adding an alias of [email protected] from my [email protected] email, but I would like to change my account name for the iCloud service itself as well, not just email. This is for aesthetic reasons because I would like to have the same login for everything I use.
    How I can transfer all my iCloud data from [email protected] to [email protected]? I would like to transfer all data completely, as I use every feature of iCloud extensively, including email folders, notes, Safari bookmarks, etc.
    Thank you very much, I look forward to your response.
    Edward

    I made a reply to your other post

  • Concatenation of Data from 4 infoobjects into a single cell in Bex Report

    Hi,
    I have loaded ODS with the description data. The source system for loading the ODS is the flat file. The ODS data should be a replica of the flat file.
    In the flat file, there is a description field corresponding to a particular ID. This Description is greater than the standard 60 char length. So, I had to split the description while loading the flat file using single line routine in the Transfer Structure.
    So, while loading different  the data, I split the description field data from the flat file into 4 infoobjects and the flat file data was loaded into the ODS.
    Now, from the reporting point of view, I need to display the entire description data from the 4 info-objects into a single cell in the Bex report.
    Please suggest a solution for this.
    <b>****Points will be awarded***</b>

    Hi Vineet,
    Thanks for the response.
    Could you please help me out with the VBA script(code) that needs to be written in the macro.
    Thanks in Advance.
    <i><b>****Points will be awarded****</b></i>
    Regards,
    Hitesh Shetty.

  • After migrating data from Time Machine, some of my photos are not showing up in iPhoto. I get a 'dashed rectangle." When I click on it I get ' ! in a Triangle" When I click on that, I actually can see the photo. I want to see my photos

    After migrating data from Time Machine, some of my photos are not showing up in iPhoto LIbrary view. I get a 'dashed rectangle." When I click on it I get ' ! in a Triangle" When I click on that, I actually can see the photo. I want to see all  my photos in 'Library' view, and I can't figure out how these photos seem to be arbitrarily hidden. Help, please.

    Try these for the first attempt:
    First be sure to have a backup copy of the library if you already don't have one.
    OT

Maybe you are looking for