小编gal*_*ica的帖子

通过java中的另一个线程刷新GUI(swing)

我有一个主程序,其中GUI基于swing并且取决于四种状态之一,GUI元素具有不同的参数.

public class Frame extends JFrame implements Runnable {
Status status = 1;
...
@Override
public void run() {
    switch (status) {
        case 1:
        ...
        case 2:
        ...
}

public void updateGUI(Status status) {
   this.status = status;
   SwingUtilities.invokeLater(this);
}
Run Code Online (Sandbox Code Playgroud)

如果我想刷新GUI只调用带有适当参数的updateGUI,一切都很好.但是程序还会创建一个额外的线程,在处理完相关数据后应该更改GUI主程序.不幸的是我不能在这个线程中调用updateGUI(..)方法.

我知道我可以使用invokeLater或SwingWorker来刷新,但是有10个以上的元素,所以我宁愿使用方法udpateGUI().

我会感激任何提示.

java user-interface swing multithreading

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

嵌套插入选择

我有递归表:

CREATE TABLE IF NOT EXISTS `Table1` (
   `Id_table1` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
   `Name` VARCHAR(45) NOT NULL ,
   `Parent_Id` INT UNSIGNED NOT NULL ,
   PRIMARY KEY (`Id_table1`) ,
   INDEX `fk_Table1_Table1` (`Parent_Id` ASC) ,
   UNIQUE INDEX `Id_UNIQUE` (`Id_table1` ASC) ,
   CONSTRAINT `fk_Table1_Table1`
      FOREIGN KEY (`Parent_Id` ) REFERENCES `Table1` (`Id_table1` )
      ON DELETE NO ACTION
      ON UPDATE NO ACTION)
   ENGINE = InnoDB;
Run Code Online (Sandbox Code Playgroud)

我尝试执行:

INSERT INTO table1 (`Name`, `Parent_Id`)
   VALUES ('name123', SELECT Id_table1
                      from table1
                      where table1.`Name` = 'sampleName')
Run Code Online (Sandbox Code Playgroud)

不幸的是,收到错误.

数据表: …

mysql sql insert

2
推荐指数
1
解决办法
6405
查看次数

标签 统计

insert ×1

java ×1

multithreading ×1

mysql ×1

sql ×1

swing ×1

user-interface ×1