我在JavaFx的SwingNode中顯示Java 1.8.0_102-b14中包含的組件時出現問題。我不確定這個問題是否是由於我的Java版本老舊,當前(如果我的是最新版本)Java版本或某個SwingNode進程錯誤的。我知道這個問題已在JavaFX and SwingNode - partial black Window之前報告過,所以我真的在尋找關於我的Java版本的反饋。JavaFx SwingNode - 隨機顯示黑色,背景或組件
這段代碼通常會顯示「button1」錯誤,如黑色或背景顏色,直到鼠標懸停在它上面或被點擊。這對我來說不是一個理想的解決方法,因爲我的項目在Fx項目中使用更復雜的擺動面板,不幸的是,純Fx不是一種選擇。
import javafx.application.Application;
import javafx.embed.swing.SwingNode;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javax.swing.JButton;
public class Test extends Application {
@Override
public void start(Stage stage) {
final SwingNode swingNode1 = new SwingNode();
final SwingNode swingNode2 = new SwingNode();
swingNode2.setContent(new JButton("Click me!"+2));
swingNode1.setContent(new JButton("Click me!"+1));
BorderPane pane = new BorderPane();
pane.setLeft(swingNode1);
pane.setRight(swingNode2);
stage.setScene(new Scene(pane, 200, 50));
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
在創建這個sssce我發現,設置在右側SwingNode內容之前設置在左側SwingNode內容修正了該問題對於這個簡單的代碼,但不是我的較大項目。所以我猜測這是內存泄漏,但我無法從我的機器上知道。
有人可以測試此代碼,看看他們是否得到類似的結果?
編輯:感謝您的快速反饋,請不要關注按鈕,因爲它們只是一個工具來展示我的問題。奇怪的功能與其他對象的操作方式相同,而不是按鈕。
即使通過@James_D複製Javadocs示例,問題仍然存在。還有其他想法嗎?這個bug在U40顯然是固定的,它能否再次被破壞? – Lost
我仍然在Windows 7的最新8u121中看到這個問題,使用invokeLater()或invokeAndWait() – Adam