调用ImageJ工具栏

时间:2014-05-14 17:12:16

标签: java imagej

我是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();

        }

    });

1 个答案:

答案 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);
    }

}

确保将初始化代码放在侦听器之外。这只发生在一开始。应该为每个事件发生一次的事件保留动作侦听器。就像,每次选择菜单项时,我都会打开和关闭工具栏。将工具栏添加到框架似乎没问题。它将出现在最顶层(使用默认布局方案),您可以在需要时使用它。您当然还有其他选项可以显示工具栏。