我是ImageJ的新手,我无法在自己的GUI中显示imageJ工具栏。有人知道如何显示工具栏。我已经尝试过tool.show()但是已经弃用了。我不知道在ImageJ代码中调用Toolbar类的位置。提前谢谢。
更新: 这是代码的一部分
JMenuItem toolbar = new JMenuItem("Toolbar");
toolbar.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
JFrame f = new JFrame();
Canvas c = new Canvas();
Toolbar tool = new Toolbar();
tool.setVisible(true);
System.out.println(tool.isShowing());
//tool.show();
//tool.getAccessibleContext();
tool.getGraphics();
tool.installStartupTools();
}
});
答案 0 :(得分:1)
我相信您希望使用.setVisible(true)
代替.show()
工具栏可以看到here扩展了Canvas。我刚才提到的两种方法不适用于工具栏,而是方法java.awt.Canvas
<强>更新强>
好的,我明白你在做什么。实际上,revalidate()
可能是您缺少刷新屏幕的部分。以下是一些代码和一些更好的解释:
import ij.gui.Toolbar;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Test1 {
public static Toolbar tool;
public static JFrame f;
public static boolean state = false;
public static void main(String[] args) {
f = new JFrame();
f.setSize(600,600);
Canvas c = new Canvas();
f.add(c);
tool = new Toolbar();
Graphics g = tool.getGraphics();
tool.installStartupTools();
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("Menu");
JMenuItem toolbar = new JMenuItem("Toolbar");
menu.add(toolbar);
menubar.add(menu);
f.setJMenuBar(menubar);
toolbar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
state = !state;
tool.setVisible(state);
tool.revalidate();
}
});
tool.setVisible(false);
f.add(tool);
f.setVisible(true);
}
}
确保将初始化代码放在侦听器之外。这只发生在一开始。应该为每个事件发生一次的事件保留动作侦听器。就像,每次选择菜单项时,我都会打开和关闭工具栏。将工具栏添加到框架似乎没问题。它将出现在最顶层(使用默认布局方案),您可以在需要时使用它。您当然还有其他选项可以显示工具栏。