JAVA Applet问题:关于点击按钮d出JDialog的鼠标焦点问题

JAVA Applet问题:关于点击按钮d出JDialog的鼠标焦点问题,第1张

是选择模式么:

可以尝试设置下 setSelectionMode(ListSelectionModel.SINGLE_SELECTION)

多行选中可以去修改ListSelectionModel的值~

如果是要编辑的话。。

需要自定义一个继承于DefaultTableModel的类

类似如下:

class MyJTableModel extends DefaultTableModel {

private boolean isCanEditOrNot = false

public MyJTableModel(Object[][] data, Object[] columnNames) {

setDataVector(data, columnNames)

}

@Override

public boolean isCellEditable(int row, int column) {

return isCanEditOrNot

}

public void setedit_not() {

isCanEditOrNot = false

}

public void setedit_can() {

isCanEditOrNot = true

}

}

然后在d出框的这个JDialog上调用MyJTableModel的对象的 setedit_can() 的方法 ~

这样设置就可以选择可以编辑了哈~

JDialog(Dialog owner, String title, boolean modal)

创建一个具有指定标题、模式和指定所有者 Dialog 的对话框

你说的是模式对话框,构造JDialog时,指定modal为true就可以了。

有两种方法,一种如qeppykqsn所说的用模态,另一种就是使用掉用获取焦点方法。获取焦点的方法为requestFocus()组件一般都有这个方法,这个方法的作用就是使调用方法的组件获取焦点,你在主窗口和子窗口倒换时分别调用自己的requestFocus()方法就可以了。

第一种用模态我做了一个例子你参考一下:

import java.awt.BorderLayout

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.awt.event.WindowAdapter

import java.awt.event.WindowEvent

import javax.swing.JButton

import javax.swing.JDialog

import javax.swing.JLabel

import javax.swing.SwingUtilities

import javax.swing.WindowConstants

public class JiaodianFrame extends javax.swing.JFrame implements ActionListener {

private JButton tan

private JDialog dialog

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

JiaodianFrame inst = new JiaodianFrame()

inst.setLocationRelativeTo(null)

inst.setVisible(true)

}

})

}

public JiaodianFrame() {

super()

initGUI()

}

private void initGUI() {

try {

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)

{

tan = new JButton()

getContentPane().add(tan, BorderLayout.CENTER)

tan.setText("新窗口")

tan.addActionListener(this)

}

{

//第三个参数主要是设置模态的,true为模态,false为非模态。

dialog=new JDialog(this,"新窗口",true)

JLabel label=new JLabel("我就是新窗口")

dialog.getContentPane().add(label)

dialog.setDefaultCloseOperation(dialog.DO_NOTHING_ON_CLOSE)

dialog.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e) {

dialog.setVisible(false)

}})

dialog.setSize(200, 150)

dialog.setLocationRelativeTo(null)

}

pack()

setSize(400, 300)

} catch (Exception e) {

e.printStackTrace()

}

}

public void actionPerformed(ActionEvent e) {

dialog.setVisible(true)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11230339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存