我想为GUI编写测试用例.我想知道你如何模拟JButton的点击,或者你如何提取JTable的元素.
出于此目的,我构建了一个简单的GUI,如果单击该按钮并且JTextfield为空,则将计数增加1,但如果提供了数字,则计数将替换为JTextfield中的整数.当然我想使用正则表达式来确保输入JTextfield的文本实际上是一个整数,但让我们假设用户不会乱七八糟并输入一个非整数.此外,JLabel在JTable添加新行时更新当前计数.
这是代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.table.DefaultTableModel;
public class sampleGUI extends JFrame implements ActionListener {
private Integer previous_count;
private Integer current_count;
private JButton Button;
private JTable table;
private JTextField text;
private DefaultTableModel model;
private JScrollPane scroll;
private JLabel label;
public sampleGUI() {
previous_count = null;
current_count = 0;
JFrame frame = new JFrame("Sample");
JPanel panel = new JPanel();
GroupLayout layout …Run Code Online (Sandbox Code Playgroud) 我有一个JTable JLabel[][]作为数据.现在我想检测双击JLabel或表格单元格(但只在其中一列中).如何在JLabel表格单元格上添加Action/MouseListener?
我有自定义单元格渲染器,并希望删除单元格的边框.
我该怎么做?我试过setBorder但它不起作用.
这是我的渲染器代码:
public class MyTableCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = -1195682136616306875L;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
if (!isSelected) {
if (row % 2 == 0 && row != 1) {
c.setBackground(new Color(255, 255, 150));
} else {
c.setBackground(Color.WHITE);
}
} else {
c.setBackground(new Color(255, 230, 255));
}
c.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
return c;
}
}
Run Code Online (Sandbox Code Playgroud) 当用户单击a上的单元格时JTable,如何计算单击单元格的行和列?我如何在一个JLabel?中显示这些信息?
在Netbeans中,我使用GUI Builder将JTable插入到我的应用程序中.
到目前为止,我只有一个类(CustomerDB):
package CustomerDB;
import [...];
public class CustomerDB extends javax.swing.JFrame {
CellEditorListener ChangeNotification = new CellEditorListener() {
public void editingCanceled(ChangeEvent e) {
System.out.println("The user canceled editing.");
}
public void editingStopped(ChangeEvent e) {
System.out.println("The user stopped editing successfully.");
}
};
public CustomerDB() {
customerTable = new javax.swing.JTable();
customerTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, …Run Code Online (Sandbox Code Playgroud) 谁能告诉我如何创建没有表头的表?
我正在制作数独谜题,我想在Java中创建一个没有表头的表.可能吗?
我有一个有3列的JTable.我已经设置了TableCellRenderer所有3列这样的(可能不是很有效?).
for (int i = 0; i < 3; i++) {
myJTable.getColumnModel().getColumn(i).setCellRenderer(renderer);
}
Run Code Online (Sandbox Code Playgroud)
将getTableCellRendererComponent()返回一个随机的背景颜色为每行一个组件.
在程序运行时如何将背景更改为其他随机颜色?
我想显示一个JTable,它按原样显示DataBase表中的数据.
到目前为止,我已经使用了JTable来显示来自Object [] []的数据.
我知道显示数据的一种方法是首先将数据库表转换为Object [] []但是还有其他任何容易但更强大和灵活的方法.
我正在为计费工具创建一个应用程序.我希望使用右对齐显示金额列.如何为JTable列设置正确的对齐方式?
java ×10
jtable ×10
swing ×9
border ×1
borderless ×1
events ×1
listener ×1
mouseevent ×1
unit-testing ×1