如何添加JToolBar组件

如何添加JToolBar组件,第1张

(1)有些菜单选项的使用频率较高,每次使用都要打开菜单,效率较低。为此,可以在工具条(JToolBar)中提供与这些菜单选项相对应快捷按钮,以提高用户的效率。工具条中通常是一些带有图标的按钮,当然也可以是其它类型的GUI组件,例如组合框等等。

(2)通常,工具条所提供的 *** 作是菜单所能提供 *** 作的一个子集,目的是能够快速访问那些使用频率高的 *** 作。

(3)工具条通常被置于布局为BorderLayout的容器中。工具条被置于布局为BorderLayout的一个面板中。工具条还有一个特点:可以被拖动到所在容器其它边界,甚至脱离其所在的容器。

(4)生成一个工具条对象,可以使用语句:

JToolBar toolbar=new JToolBar()

(5)还可以在生成工具条时,指明工具条的标题。这样,当工具条脱离所在容器时,可以在自己的标题栏显示标题:

JToolBar toolbar=new JToolBar("颜色工具条")

(6)向工具条中添加组件,使用add方法:

toolbar.add(btnBlue)

toolbar.add(btnYellow)

(7)缺省情况下,组件是按照水平方式逐个添加入工具条的,也可以在生成工具条时指明以垂直方式来添加组件:

JToolBar toolbar=new JToolBar(SwingConstants.VERTICAL)

(8)如果希望工具条不能移动,可以使用setFloatable方法来设置:

toolbar.setFloatable(false)

(9)当工具条中的按钮上只显示图标时,用户可能不能确切知道各个按钮的具体含义。可以使用工具提示解决这个问题:

btnYellow.setToolTipText("面板置为黄色")

public static void main(String[] args) {

new WindowViewer()

}

swing有一套自己的界面显示机制.swing的所有组件应该运行在swing 的 事件线程里 ,而不是主线程.你不能在其他线程直接(可以间接,但是为了耗时 *** 作等其他情况准备的)调用任何的组件(比如JMenuBar).必须调用SwingUtilities.invokeLater新建一个线程通知swing事件线程要求UI界面更新的事件,由swing的事件线程管理对组件的所有 *** 作. 这是正确的做法.如果本身是事件线程,可以直接 *** 作组件.

//改成如下代码就好了

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {//SwingUtilities 里有invokeLater和invokeAndWait方法

public void run() {

new WindowViewer()

}

})

}

更多问题请参考SwingUtilities的API

代码如下:

public class App extends JFrame {

 

    public App() {

         

        this.setSize(400, 400)

        this.setLocationRelativeTo(null)

        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

        

        // 添加菜单

        JMenuBar menuBar = new JMenuBar()

        this.setJMenuBar(menuBar)

        

        JMenu menu = new JMenu("文件")

        menuBar.add(menu)

        

        JMenuItem testMenuItem = new JMenuItem("打开")

        testMenuItem.addActionListener(e -> JOptionPane.showMessageDialog(this, "打开"))

        menu.add(testMenuItem)

        

        // 添加工具栏

        JToolBar toolBar = new JToolBar()

        this.add(toolBar, BorderLayout.NORTH)

        

        JButton btnSave = new JButton("保存")

        btnSave.addActionListener(e -> JOptionPane.showMessageDialog(this, "保存"))

        toolBar.add(btnSave)

    }

     

    public static void main(String[] args) {

       new App().setVisible(true)

    }

}

运行结果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11259655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存