小编mKo*_*bel的帖子

JTable:检测单元格数据的变化

在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 events swing jtable event-handling

21
推荐指数
3
解决办法
6万
查看次数

Java - 检查JTextField是否为空

所以我知道这是一个很受欢迎的问题,已经找到了解决方案.但是,当我尝试这个时,它无法正常工作.

我的JTextField为空,并且未启用该按钮.当我在文本字段中写东西时,按钮不会启用.

所以我的程序应该每秒检查一次该字段是否为空.只要有人在文本字段中写入内容,就应该启用该按钮.^^

loginbt = new JButton("Login");
    loginbt.addActionListener(new loginHandler());
    add(loginbt);

    if(name.getText().equals("")) {
        loginbt.setEnabled(false);
    }else {
        loginbt.setEnabled(true);
    }
Run Code Online (Sandbox Code Playgroud)

java swing jbutton jtextfield documentlistener

21
推荐指数
2
解决办法
18万
查看次数

如果线程启动执行程序,则无法从Future <?>和SwingWorker获取ArrayIndexOutOfBoundsException

我通过使用Executor玩SwingWorker的多线程,我在那里错误地从Vector中识别出错误的元素,看起来像这个代码相当忽略了Vector中的元素不存在

我的问题 - >如何/有可能以某种方式捕获此异常

简单的输出

run:
Thread Status with Name :StartShedule, SwingWorker Status is STARTED
Thread Status with Name :StartShedule, SwingWorker Status is DONE
Thread Status with Name :StartShedule, SwingWorker Status is STARTED
Thread Status with Name :StartShedule, SwingWorker Status is DONE
Thread Status with Name :StartShedule, SwingWorker Status is STARTED
Thread Status with Name :StartShedule, SwingWorker Status is DONE
BUILD SUCCESSFUL (total time: 11 seconds)
Run Code Online (Sandbox Code Playgroud)

通过取消注释

//changeTableValues1(); // un-comment for get ArrayIndexOutOfBoundsException
Run Code Online (Sandbox Code Playgroud)

一切都正确,我得到ArrayIndexOutOfBoundsException并输出

run:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: …
Run Code Online (Sandbox Code Playgroud)

java swing exception-handling vector swingworker

20
推荐指数
2
解决办法
8356
查看次数

关闭对话框的Java监听器

我有一个Java应用程序,显示数据库中的列表.在类的内部是以下代码,用于打开数据输入的新对话框:

@Action
public void addNewEntry() {
    JFrame mainFrame = ADLog2App.getApplication().getMainFrame();
    addNewDialog = new AddNewView(mainFrame, true);
    addNewDialog.setLocationRelativeTo(mainFrame);
    addNewDialog.addContainerListener(null);
    ADLog2App.getApplication().show(addNewDialog);
}
Run Code Online (Sandbox Code Playgroud)

如何向主类添加侦听器以检测addNewDialog窗口何时关闭,以便我可以调用刷新方法并从数据库中刷新列表.

java swing jdialog windowlistener

19
推荐指数
2
解决办法
4万
查看次数

如何在图形中以透明颜色制作矩形?

我试图在我的应用程序上以红色阴影绘制一个矩形,但我需要使它变得透明,以便它下面的组件仍然显示.但是我仍然想要一些颜色仍然会显示.我正在绘制的方法如下:

protected void paintComponent(Graphics g) {
    if (point != null) {
        int value = this.chooseColour(); // used to return how bright the red is needed

        if(value !=0){
            Color myColour = new Color(255, value,value );
            g.setColor(myColour);
            g.fillRect(point.x, point.y, this.width, this.height);
        }
        else{
            Color myColour = new Color(value, 0,0 );
            g.setColor(myColour);
            g.fillRect(point.x, point.y, this.width, this.height);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能让红色阴影有点透明?我不需要它完全透明.

java swing colors paintcomponent translucency

19
推荐指数
1
解决办法
4万
查看次数

Java:删除DefaultTableModel的所有行

我想删除DefaultTable的所有行.我发现了两种在Internet上删除它们的常用方法,但在我的情况下它们都不起作用,因为我的DefaultTableModel中不存在这些方法.我想知道为什么:S.我使用DefaultTableModel的代码是

DefaultTableModel Table =(DefaultTableModel)Table.getModel();

删除的一种方法是

Table.removeRow(Table.getRowCount() - 1);

但是这个removerow方法在我的DefaultTableModel中不存在.

请帮帮我.

java swing jtable defaulttablemodel

19
推荐指数
4
解决办法
3万
查看次数

如何在Java中使用JFileChooser保存文件?

我有以下代码.它保存文件但内容为空.它出什么问题了?

public void saveMap() {
    String sb = "TEST CONTENT";
    JFileChooser chooser = new JFileChooser();
    chooser.setCurrentDirectory(new File("/home/me/Documents"));
    int retrival = chooser.showSaveDialog(null);
    if (retrival == JFileChooser.APPROVE_OPTION) {
        try {
            FileWriter fw = new FileWriter(chooser.getSelectedFile()+".txt");
            fw.write(sb.toString());
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java file-io swing jfilechooser

19
推荐指数
3
解决办法
8万
查看次数

Swing对话框如何工作?

如果你在Swing中打开一个对话框,比如一个JFileChooser,它就像这个伪代码:

swing event thread {
  create dialog
  add listener to dialog close event {
    returnValue = somethingFromDialog
  }
  show dialog
  (wait until it is closed)
  return returnValue
}

我的问题是:这怎么可能有效?如您所见,线程等待返回,直到对话框关闭.这意味着Swing事件线程被阻止.然而,人们可以与对话框进行交互,AFAIK需要该对话框才能运行.

那怎么办?

java swing multithreading jfilechooser jdialog

18
推荐指数
2
解决办法
2347
查看次数

在运行时删除顶级容器

不幸的是,看起来这个最近封闭的问题还不太清楚.这是典型的输出:

run:
    Trying to Remove JDialog
    Remove Cycle Done :-)
    Checking if still exists any of TopLayoutContainers
JFrame
JDialog
    Will Try Remove Dialog again, CycleNo. 1
 -----------------------------------------------------------
    Trying to Remove JDialog
    Remove Cycle Done :-)
    Checking if still exists any of TopLayoutContainers
JFrame
JDialog
    Will Try Remove Dialog again, CycleNo. 2
 -----------------------------------------------------------
    Trying to Remove JDialog
    Remove Cycle Done :-)
    Checking if still exists any of TopLayoutContainers
JFrame
JDialog
    Will Try Remove Dialog again, CycleNo. 3
 -----------------------------------------------------------
    Trying …
Run Code Online (Sandbox Code Playgroud)

java swing runtime jdialog

18
推荐指数
4
解决办法
9582
查看次数

将JButton文本设置为左对齐?

我之前有一个JLabel,我想点击它.我发现这样做最简单的方法是使它成为JButton并使用以下代码.它现在看起来像一个JL​​abel

button.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
button.setBorderPainted(false);
button.setContentAreaFilled(false);
button.setFocusPainted(false);
Run Code Online (Sandbox Code Playgroud)

这正是我想要的,除了文本现在在中间对齐.现在从我能够阅读其他问题和搜索.这应该工作

button.setHorizontalTextPosition( SwingConstants.LEFT );
Run Code Online (Sandbox Code Playgroud)

然而,文本仍然在按钮中间对齐.我有什么想法可以改变这个?

java swing alignment jbutton text-alignment

18
推荐指数
2
解决办法
3万
查看次数