Canvas 将SWT画布添加到JPanel
我正在尝试将NatTable(扩展org.eclipse.swt.widgets.Canvas)添加到JPanel中(该程序的大多数图形都在Swing中,我对swt相当不熟悉)。我试图使用下面的代码测试SWT_AWT类,但出现错误:Canvas 将SWT画布添加到JPanel,canvas,swt,awt,swt-awt,nattable,Canvas,Swt,Awt,Swt Awt,Nattable,我正在尝试将NatTable(扩展org.eclipse.swt.widgets.Canvas)添加到JPanel中(该程序的大多数图形都在Swing中,我对swt相当不熟悉)。我试图使用下面的代码测试SWT_AWT类,但出现错误: org.eclipse.swt.widgets.Canvas canvas = new org.eclipse.swt.widgets.Canvas( new org.eclipse.s
org.eclipse.swt.widgets.Canvas canvas =
new org.eclipse.swt.widgets.Canvas(
new org.eclipse.swt.widgets.Shell(
Display.getDefault(),
1264),
SWT.NONE);
java.awt.Frame frame = SWT_AWT.new_Frame(canvas); //error here
JPanel returnMe = new JPanel();
returnMe.add(frame);
return returnMe;
线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常:参数无效
我不明白为什么在传递SWT组合时会出现此错误。谁能解释一下我做错了什么以及如何纠正它
另外,您将采用另一种方式:在SWT中嵌入Swing组件。相反,你需要
java.awt.Canvas canvas = ...
// assumes this code is running in SWT thread
Shell shell = SWT_AWT.new_Shell(Display.getCurrent(), canvas);
NatTable table = new NatTable(shell, SWT.NONE); // etc.
注意,您需要安排在SWT调度线程中运行SWT代码,在AWT调度线程中运行Swing代码