如何保持JTabe窗口的焦点直到用户响应?

时间:2013-12-05 04:43:47

标签: java swing jtable jframe

我希望避免其余的代码执行,直到用户响应jtable(等到他取消它以显示JOptionPane

import java.awt.*;

import javax.swing.*;

public class test {

public static void main(String args[]) {

String[][] rows = { { "Sameendra", "MCA","sam", "Old" }, { "vinod", "M.ED","sam", "Old" }, { "Suman", "BIT","sam", "Old" }, { "Amit", "Msc","sam", "Old" }, {"Deepak", "BIT","sam", "Old"}, { "Ravi", "MCA","sam", "Old" },// { "Sameendra", "MCA","sam", "Old" }, { "vinod", "M.ED","sam", "Old" }, };
};

    String headers[] = { "Upper", "Lower", "New", "Old" };
    JTable table = new JTable(rows, headers);
    table.setEnabled(true);



    JScrollPane scrollPane = new JScrollPane(table);
    JFrame frame = new JFrame("New Table");


    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(scrollPane, BorderLayout.CENTER);
    frame.setLocationRelativeTo(frame);
    frame.setLocation(500,325);
    frame.setSize(300, 168);
    frame.setVisible(true);
    frame.setFocusable(true);
    JOptionPane.showMessageDialog(null, "Goback?", "return",   

    JOptionPane.INFORMATION_MESSAGE);

2 个答案:

答案 0 :(得分:1)

请记住,大多数GUI都是事件驱动的环境,这意味着一次可以在屏幕上显示多个窗口和控件,用户可以选择他们想要做的事情。

如果要在用户关闭窗口之前停止代码执行,则需要使用某种模式对话框。这将停止代码在对话框可见时执行,并在对话框关闭后继续执行。

您可以轻松使用JFrame或更多JDialog,而不是使用JOptionPane,使用JTable,将{{1}}作为消息对象传递。

请查看How to use dialogs了解详情,How do i make the output come in different columns?例如......

答案 1 :(得分:0)

请求焦点,你可以使用 scrollpane.requestFocusInWindow();