我有一个主程序,其中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().
我会感激任何提示.
我有递归表:
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)
不幸的是,收到错误.
数据表: …