【问题标题】:How to keep the focus of the JTabe window till the user responds?如何在用户响应之前保持 JTabe 窗口的焦点?
【发布时间】:2013-12-05 04:43:46
【问题描述】:

我想避免在用户响应 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);

【问题讨论】:

    标签: java swing jtable jframe


    【解决方案1】:

    请记住,大多数 GUI 都是事件驱动的环境,这意味着可以同时在屏幕上显示多个窗口和控件,并且用户可以选择他们想要执行的操作。

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

    您可以使用JDialog 来代替JFrame,或者更简单地使用JOptionPane,将JTable 作为消息对象传递。

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

    【讨论】:

    • 谢谢,稍后会尝试 JDiolog,JOption 目前看起来还不错 :) 虽然看起来不太好,但还是谢谢
    • JOptionPane 使用 JDialog 来显示其内容,并且非常灵活地允许您提供自己的自定义选项(按钮)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2010-12-07
      • 2023-04-02
      • 2015-03-08
      • 2019-07-01
      • 2018-03-18
      • 1970-01-01
      相关资源
      最近更新 更多