Making a JInternalFrame Modal











up vote
0
down vote

favorite












I have a JDialog that pulls a list of entries from a database.
It looks like this:
https://i.stack.imgur.com/KPC5c.png



I want to take the JDialog and make it into a JIntneralFrame so I can have it inside a desktop pane like this:
https://i.stack.imgur.com/4cBZd.png



The JDialog just contains a JPanel that contains all of the fields and buttons, so changing it to a JInternalFrame is a relatively simple task (just add the JPanel to a JInternalFrame).



The problem is that the JInternalFrame is not modal. I need the internal frame to be modal to the frame in the 2nd image.



EDIT



I've already tried using JOptionPane, and had some limited success



JOptionPane.showInternalDialog(null, panel, 
JOptionPane.DEFAULT_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
new Object {},
null);


but it is not giving me the results I need. The buttons in my panel cannot close out the frame that the JOptionPane creates. The Cancel button should close the frame, while the Select button sets a value then closes the frame. Is there any way I could make the buttons work like this for a JOptionPane? I want to use my own buttons, not the buttons that the JOptionPane provides automatically.



So how would I go about making a JInternalFrame modal like a JDialog? Preferably, it would only be modal to the internal frame that called it and not to the others.



If it helps, here is the code for my JDialog:



public class RecordSelectMenu extends JDialog {

private JPanel contentPane;
private JTextField textField;
private JTable table;

private final String queryType;
private final String conditional;

private Object selectionID;

private int busy;

private JDatabase database;

/**
* Create the dialog.
*/
public RecordSelectMenu(String headerText, String searchKey, String
primaryKey, String query, String condition, JDatabase database) {


this.database = database;
this.queryType = query;
this.conditional = condition;

//Set dialog modal
setModal(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 650, 360);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel tableQueryLabel = new JLabel(headerText);
tableQueryLabel.setBounds(10, 11, 269, 14);
tableQueryLabel.setFont(new Font("Yu Gothic UI Semibold", Font.BOLD,
16));
contentPane.add(tableQueryLabel);

JSeparator separator = new JSeparator();
separator.setBounds(0, 36, 634, 21);
contentPane.add(separator);

JButton searchButton = new JButton("Search");
searchButton.setBounds(212, 287, 89, 23);
searchButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
search();
}

});
contentPane.add(searchButton);

textField = new JTextField();
textField.setBounds(80, 288, 122, 20);
textField.addKeyListener(new KeyListener() {

@Override
public void keyPressed(KeyEvent arg0) {
if(arg0.getKeyCode() == KeyEvent.VK_ENTER) {
search();
}

}

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

});

contentPane.add(textField);
textField.setColumns(10);

JLabel searchTermLabel = new JLabel(searchKey);
searchTermLabel.setBounds(10, 294, 89, 14);
contentPane.add(searchTermLabel);

JButton selectButton = new JButton("Select");
selectButton.setBounds(311, 287, 89, 23);
selectButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
select();
dispose();
}

});
contentPane.add(selectButton);

JButton cancelButton = new JButton("Cancel");
cancelButton.setBounds(521, 287, 89, 23);
cancelButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
dispose();
}

});
contentPane.add(cancelButton);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 48, 607, 228);
contentPane.add(scrollPane);

table = new JTable();
scrollPane.setViewportView(table);

}

public int isBusy() {
return busy;
}

public Object getSelectionPK() {
return selectionID;
}



private void select() {
selectionID = table.getValueAt(table.getSelectedRow(), 0);

}

private void search() {
try {
Query query = new Query(database, (queryType + " " + conditional + "
'*" + textField.getText() + "*' "));
TableModel tableBuilder = new DefaultTableModel(query.getAll(),
query.getColumnNames());



this.table.setModel( tableBuilder);
repaint();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}









share|improve this question
























  • The showInternal* methods of JOptionPane are probably the easiest route, if you don’t mind a Close button at the bottom.
    – VGR
    Nov 7 at 17:22










  • I've tried using that, and had limited success. I added the JPanel from my dialog and had it so only my buttons would show. The problem is that the buttons in my panel cannot close out the JOptionPane. The Cancel button just closes the window, while the Select button returns a value then closes it.
    – Danny
    Nov 7 at 17:28












  • Try having your buttons’ action listeners do ((JOptionPane) SwingUtilities.getAncestorOfClass(JOptionPane.class, button)).setValue(JOptionPane.CLOSED_OPTION);. That should close it.
    – VGR
    Nov 7 at 17:33










  • Looks like that did the trick. Thanks!
    – Danny
    Nov 7 at 20:47















up vote
0
down vote

favorite












I have a JDialog that pulls a list of entries from a database.
It looks like this:
https://i.stack.imgur.com/KPC5c.png



I want to take the JDialog and make it into a JIntneralFrame so I can have it inside a desktop pane like this:
https://i.stack.imgur.com/4cBZd.png



The JDialog just contains a JPanel that contains all of the fields and buttons, so changing it to a JInternalFrame is a relatively simple task (just add the JPanel to a JInternalFrame).



The problem is that the JInternalFrame is not modal. I need the internal frame to be modal to the frame in the 2nd image.



EDIT



I've already tried using JOptionPane, and had some limited success



JOptionPane.showInternalDialog(null, panel, 
JOptionPane.DEFAULT_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
new Object {},
null);


but it is not giving me the results I need. The buttons in my panel cannot close out the frame that the JOptionPane creates. The Cancel button should close the frame, while the Select button sets a value then closes the frame. Is there any way I could make the buttons work like this for a JOptionPane? I want to use my own buttons, not the buttons that the JOptionPane provides automatically.



So how would I go about making a JInternalFrame modal like a JDialog? Preferably, it would only be modal to the internal frame that called it and not to the others.



If it helps, here is the code for my JDialog:



public class RecordSelectMenu extends JDialog {

private JPanel contentPane;
private JTextField textField;
private JTable table;

private final String queryType;
private final String conditional;

private Object selectionID;

private int busy;

private JDatabase database;

/**
* Create the dialog.
*/
public RecordSelectMenu(String headerText, String searchKey, String
primaryKey, String query, String condition, JDatabase database) {


this.database = database;
this.queryType = query;
this.conditional = condition;

//Set dialog modal
setModal(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 650, 360);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel tableQueryLabel = new JLabel(headerText);
tableQueryLabel.setBounds(10, 11, 269, 14);
tableQueryLabel.setFont(new Font("Yu Gothic UI Semibold", Font.BOLD,
16));
contentPane.add(tableQueryLabel);

JSeparator separator = new JSeparator();
separator.setBounds(0, 36, 634, 21);
contentPane.add(separator);

JButton searchButton = new JButton("Search");
searchButton.setBounds(212, 287, 89, 23);
searchButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
search();
}

});
contentPane.add(searchButton);

textField = new JTextField();
textField.setBounds(80, 288, 122, 20);
textField.addKeyListener(new KeyListener() {

@Override
public void keyPressed(KeyEvent arg0) {
if(arg0.getKeyCode() == KeyEvent.VK_ENTER) {
search();
}

}

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

});

contentPane.add(textField);
textField.setColumns(10);

JLabel searchTermLabel = new JLabel(searchKey);
searchTermLabel.setBounds(10, 294, 89, 14);
contentPane.add(searchTermLabel);

JButton selectButton = new JButton("Select");
selectButton.setBounds(311, 287, 89, 23);
selectButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
select();
dispose();
}

});
contentPane.add(selectButton);

JButton cancelButton = new JButton("Cancel");
cancelButton.setBounds(521, 287, 89, 23);
cancelButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
dispose();
}

});
contentPane.add(cancelButton);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 48, 607, 228);
contentPane.add(scrollPane);

table = new JTable();
scrollPane.setViewportView(table);

}

public int isBusy() {
return busy;
}

public Object getSelectionPK() {
return selectionID;
}



private void select() {
selectionID = table.getValueAt(table.getSelectedRow(), 0);

}

private void search() {
try {
Query query = new Query(database, (queryType + " " + conditional + "
'*" + textField.getText() + "*' "));
TableModel tableBuilder = new DefaultTableModel(query.getAll(),
query.getColumnNames());



this.table.setModel( tableBuilder);
repaint();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}









share|improve this question
























  • The showInternal* methods of JOptionPane are probably the easiest route, if you don’t mind a Close button at the bottom.
    – VGR
    Nov 7 at 17:22










  • I've tried using that, and had limited success. I added the JPanel from my dialog and had it so only my buttons would show. The problem is that the buttons in my panel cannot close out the JOptionPane. The Cancel button just closes the window, while the Select button returns a value then closes it.
    – Danny
    Nov 7 at 17:28












  • Try having your buttons’ action listeners do ((JOptionPane) SwingUtilities.getAncestorOfClass(JOptionPane.class, button)).setValue(JOptionPane.CLOSED_OPTION);. That should close it.
    – VGR
    Nov 7 at 17:33










  • Looks like that did the trick. Thanks!
    – Danny
    Nov 7 at 20:47













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have a JDialog that pulls a list of entries from a database.
It looks like this:
https://i.stack.imgur.com/KPC5c.png



I want to take the JDialog and make it into a JIntneralFrame so I can have it inside a desktop pane like this:
https://i.stack.imgur.com/4cBZd.png



The JDialog just contains a JPanel that contains all of the fields and buttons, so changing it to a JInternalFrame is a relatively simple task (just add the JPanel to a JInternalFrame).



The problem is that the JInternalFrame is not modal. I need the internal frame to be modal to the frame in the 2nd image.



EDIT



I've already tried using JOptionPane, and had some limited success



JOptionPane.showInternalDialog(null, panel, 
JOptionPane.DEFAULT_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
new Object {},
null);


but it is not giving me the results I need. The buttons in my panel cannot close out the frame that the JOptionPane creates. The Cancel button should close the frame, while the Select button sets a value then closes the frame. Is there any way I could make the buttons work like this for a JOptionPane? I want to use my own buttons, not the buttons that the JOptionPane provides automatically.



So how would I go about making a JInternalFrame modal like a JDialog? Preferably, it would only be modal to the internal frame that called it and not to the others.



If it helps, here is the code for my JDialog:



public class RecordSelectMenu extends JDialog {

private JPanel contentPane;
private JTextField textField;
private JTable table;

private final String queryType;
private final String conditional;

private Object selectionID;

private int busy;

private JDatabase database;

/**
* Create the dialog.
*/
public RecordSelectMenu(String headerText, String searchKey, String
primaryKey, String query, String condition, JDatabase database) {


this.database = database;
this.queryType = query;
this.conditional = condition;

//Set dialog modal
setModal(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 650, 360);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel tableQueryLabel = new JLabel(headerText);
tableQueryLabel.setBounds(10, 11, 269, 14);
tableQueryLabel.setFont(new Font("Yu Gothic UI Semibold", Font.BOLD,
16));
contentPane.add(tableQueryLabel);

JSeparator separator = new JSeparator();
separator.setBounds(0, 36, 634, 21);
contentPane.add(separator);

JButton searchButton = new JButton("Search");
searchButton.setBounds(212, 287, 89, 23);
searchButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
search();
}

});
contentPane.add(searchButton);

textField = new JTextField();
textField.setBounds(80, 288, 122, 20);
textField.addKeyListener(new KeyListener() {

@Override
public void keyPressed(KeyEvent arg0) {
if(arg0.getKeyCode() == KeyEvent.VK_ENTER) {
search();
}

}

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

});

contentPane.add(textField);
textField.setColumns(10);

JLabel searchTermLabel = new JLabel(searchKey);
searchTermLabel.setBounds(10, 294, 89, 14);
contentPane.add(searchTermLabel);

JButton selectButton = new JButton("Select");
selectButton.setBounds(311, 287, 89, 23);
selectButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
select();
dispose();
}

});
contentPane.add(selectButton);

JButton cancelButton = new JButton("Cancel");
cancelButton.setBounds(521, 287, 89, 23);
cancelButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
dispose();
}

});
contentPane.add(cancelButton);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 48, 607, 228);
contentPane.add(scrollPane);

table = new JTable();
scrollPane.setViewportView(table);

}

public int isBusy() {
return busy;
}

public Object getSelectionPK() {
return selectionID;
}



private void select() {
selectionID = table.getValueAt(table.getSelectedRow(), 0);

}

private void search() {
try {
Query query = new Query(database, (queryType + " " + conditional + "
'*" + textField.getText() + "*' "));
TableModel tableBuilder = new DefaultTableModel(query.getAll(),
query.getColumnNames());



this.table.setModel( tableBuilder);
repaint();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}









share|improve this question















I have a JDialog that pulls a list of entries from a database.
It looks like this:
https://i.stack.imgur.com/KPC5c.png



I want to take the JDialog and make it into a JIntneralFrame so I can have it inside a desktop pane like this:
https://i.stack.imgur.com/4cBZd.png



The JDialog just contains a JPanel that contains all of the fields and buttons, so changing it to a JInternalFrame is a relatively simple task (just add the JPanel to a JInternalFrame).



The problem is that the JInternalFrame is not modal. I need the internal frame to be modal to the frame in the 2nd image.



EDIT



I've already tried using JOptionPane, and had some limited success



JOptionPane.showInternalDialog(null, panel, 
JOptionPane.DEFAULT_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
new Object {},
null);


but it is not giving me the results I need. The buttons in my panel cannot close out the frame that the JOptionPane creates. The Cancel button should close the frame, while the Select button sets a value then closes the frame. Is there any way I could make the buttons work like this for a JOptionPane? I want to use my own buttons, not the buttons that the JOptionPane provides automatically.



So how would I go about making a JInternalFrame modal like a JDialog? Preferably, it would only be modal to the internal frame that called it and not to the others.



If it helps, here is the code for my JDialog:



public class RecordSelectMenu extends JDialog {

private JPanel contentPane;
private JTextField textField;
private JTable table;

private final String queryType;
private final String conditional;

private Object selectionID;

private int busy;

private JDatabase database;

/**
* Create the dialog.
*/
public RecordSelectMenu(String headerText, String searchKey, String
primaryKey, String query, String condition, JDatabase database) {


this.database = database;
this.queryType = query;
this.conditional = condition;

//Set dialog modal
setModal(true);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setBounds(100, 100, 650, 360);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel tableQueryLabel = new JLabel(headerText);
tableQueryLabel.setBounds(10, 11, 269, 14);
tableQueryLabel.setFont(new Font("Yu Gothic UI Semibold", Font.BOLD,
16));
contentPane.add(tableQueryLabel);

JSeparator separator = new JSeparator();
separator.setBounds(0, 36, 634, 21);
contentPane.add(separator);

JButton searchButton = new JButton("Search");
searchButton.setBounds(212, 287, 89, 23);
searchButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
search();
}

});
contentPane.add(searchButton);

textField = new JTextField();
textField.setBounds(80, 288, 122, 20);
textField.addKeyListener(new KeyListener() {

@Override
public void keyPressed(KeyEvent arg0) {
if(arg0.getKeyCode() == KeyEvent.VK_ENTER) {
search();
}

}

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

});

contentPane.add(textField);
textField.setColumns(10);

JLabel searchTermLabel = new JLabel(searchKey);
searchTermLabel.setBounds(10, 294, 89, 14);
contentPane.add(searchTermLabel);

JButton selectButton = new JButton("Select");
selectButton.setBounds(311, 287, 89, 23);
selectButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
select();
dispose();
}

});
contentPane.add(selectButton);

JButton cancelButton = new JButton("Cancel");
cancelButton.setBounds(521, 287, 89, 23);
cancelButton.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
dispose();
}

});
contentPane.add(cancelButton);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 48, 607, 228);
contentPane.add(scrollPane);

table = new JTable();
scrollPane.setViewportView(table);

}

public int isBusy() {
return busy;
}

public Object getSelectionPK() {
return selectionID;
}



private void select() {
selectionID = table.getValueAt(table.getSelectedRow(), 0);

}

private void search() {
try {
Query query = new Query(database, (queryType + " " + conditional + "
'*" + textField.getText() + "*' "));
TableModel tableBuilder = new DefaultTableModel(query.getAll(),
query.getColumnNames());



this.table.setModel( tableBuilder);
repaint();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}






java swing






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 7 at 17:38

























asked Nov 7 at 17:08









Danny

11




11












  • The showInternal* methods of JOptionPane are probably the easiest route, if you don’t mind a Close button at the bottom.
    – VGR
    Nov 7 at 17:22










  • I've tried using that, and had limited success. I added the JPanel from my dialog and had it so only my buttons would show. The problem is that the buttons in my panel cannot close out the JOptionPane. The Cancel button just closes the window, while the Select button returns a value then closes it.
    – Danny
    Nov 7 at 17:28












  • Try having your buttons’ action listeners do ((JOptionPane) SwingUtilities.getAncestorOfClass(JOptionPane.class, button)).setValue(JOptionPane.CLOSED_OPTION);. That should close it.
    – VGR
    Nov 7 at 17:33










  • Looks like that did the trick. Thanks!
    – Danny
    Nov 7 at 20:47


















  • The showInternal* methods of JOptionPane are probably the easiest route, if you don’t mind a Close button at the bottom.
    – VGR
    Nov 7 at 17:22










  • I've tried using that, and had limited success. I added the JPanel from my dialog and had it so only my buttons would show. The problem is that the buttons in my panel cannot close out the JOptionPane. The Cancel button just closes the window, while the Select button returns a value then closes it.
    – Danny
    Nov 7 at 17:28












  • Try having your buttons’ action listeners do ((JOptionPane) SwingUtilities.getAncestorOfClass(JOptionPane.class, button)).setValue(JOptionPane.CLOSED_OPTION);. That should close it.
    – VGR
    Nov 7 at 17:33










  • Looks like that did the trick. Thanks!
    – Danny
    Nov 7 at 20:47
















The showInternal* methods of JOptionPane are probably the easiest route, if you don’t mind a Close button at the bottom.
– VGR
Nov 7 at 17:22




The showInternal* methods of JOptionPane are probably the easiest route, if you don’t mind a Close button at the bottom.
– VGR
Nov 7 at 17:22












I've tried using that, and had limited success. I added the JPanel from my dialog and had it so only my buttons would show. The problem is that the buttons in my panel cannot close out the JOptionPane. The Cancel button just closes the window, while the Select button returns a value then closes it.
– Danny
Nov 7 at 17:28






I've tried using that, and had limited success. I added the JPanel from my dialog and had it so only my buttons would show. The problem is that the buttons in my panel cannot close out the JOptionPane. The Cancel button just closes the window, while the Select button returns a value then closes it.
– Danny
Nov 7 at 17:28














Try having your buttons’ action listeners do ((JOptionPane) SwingUtilities.getAncestorOfClass(JOptionPane.class, button)).setValue(JOptionPane.CLOSED_OPTION);. That should close it.
– VGR
Nov 7 at 17:33




Try having your buttons’ action listeners do ((JOptionPane) SwingUtilities.getAncestorOfClass(JOptionPane.class, button)).setValue(JOptionPane.CLOSED_OPTION);. That should close it.
– VGR
Nov 7 at 17:33












Looks like that did the trick. Thanks!
– Danny
Nov 7 at 20:47




Looks like that did the trick. Thanks!
– Danny
Nov 7 at 20:47

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53194395%2fmaking-a-jinternalframe-modal%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53194395%2fmaking-a-jinternalframe-modal%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini