我有JList一个DefaultListModel.
如何在JList双击事件的反应中制作一个项目?
我有一个JTable使用AbstractTableModel在那里我有一个JCheckBox在选择行的第一列.现在,我需要从表中选择要检查的选定行.现在,我顺序遍历从第一行到最后一行并获取所有选择的行,如下所示,
List<Integer> selectedRows = new ArrayList<Integer>();
for(int i = 0; i < table.getRowCount(); i++) {
if((Boolean) table.getValuAt(i, 0)) {
selectedRows.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是,当需要获取所选行时,我需要遍历所有行.现在我有10到20行.但是将来我会得到5000行左右.我的问题是,如果有5000行,如果用户只选择5000nd(最后一条记录)行,那么我需要遍历所有5000行以获得所选行.我认为这不是一个好方法.
我想要实现的一种方法是,向JCheckBox列添加一个监听器,这样当有任何更改时,(SELECTED/DESELECTED)我需要更新监听器类中所选行的数组.在这个监听器类中,当用户选择JCheckBox我需要调用时table.getSelectedRow(..),如果JCheckBox选择了那个我需要存储.
还有更好的方法吗?
我正在学习Swing并编写了一个应用程序,让用户可以选择一个图像文件并将其显示在JPanel.它有效,但我想处理时的情况
在这些情况下,我想清除JPanel并在文本区域显示错误消息.
我尝试这样做如下.但我不确定这是否是正确的方法.我想你的建议.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
class Display extends JFrame {
private MyImagePanel canvas;
private JButton okbutton;
private JTextArea result;
private JFileChooser filechooser;
private static Insets insets = new Insets(0, 0, 0, 0);
public Display(String name) {
super(name);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
addWidgets();
showGUI();
}
private void showGUI() {
this.pack();
this.setVisible(true);
}
private void addWidgets() {
canvas = new MyImagePanel();
okbutton = …Run Code Online (Sandbox Code Playgroud)