gpt4 book ai didi

java - Swing 操作 - 链接菜单和工具栏

转载 作者:行者123 更新时间:2023-12-01 18:08:37 32 4
gpt4 key购买 nike

我一直在研究 Java Swing,并且正在努力学习操作。
我可以成功创建操作对象并使用它们将项目从 JToolBar 链接到 JMenuItems我的问题是,构造的操作在工具栏中同时显示图标和文本(应该只是图标)
查看以下代码:

import java.awt.*;    
import java.awt.event.*;
import javax.swing.*;

class MenuDemo{

MenuDemo(){
JFrame jfrm = new JFrame("Complete Menu Demo");
jfrm.setSize(220, 200);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JMenuBar jmb = new JMenuBar();

/* Make the action object */
ImageIcon setIcon = new ImageIcon("setBP.png");
DebugAction setAct = new DebugAction("Set Breakpoint",
setIcon, KeyEvent.VK_S,
KeyEvent.VK_B, "Set Breakpoint");

/* Make the toolbar */
JButton jbtnSet = new JButton(setAct);
JToolBar jtb = new JToolBar("Breakpoints");
jtb.add(jbtnSet);

/* Make the menu */
JMenu jmDebug = new JMenu("Debug");
JMenuItem jmiSetBP = new JMenuItem(setAct);
jmDebug.add(jmiSetBP);

jmb.add(jmDebug);
jfrm.getContentPane().add(jtb, BorderLayout.NORTH);
jfrm.setJMenuBar(jmb);
jfrm.setVisible(true);
}

class DebugAction extends AbstractAction{
public DebugAction(String name, Icon image, int mnem,
int accel, String tTip){
super(name, image);

putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(accel,
InputEvent.CTRL_MASK));
putValue(MNEMONIC_KEY, new Integer(mnem));
putValue(SHORT_DESCRIPTION, tTip);
}

public void actionPerformed(ActionEvent ae){
}
}

public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new MenuDemo();
}
});
}
}
<小时/>

该程序产生以下 GUI:

Screenshot of GUI with Text in JToolbar Icon Screenshot of GUI with Menu Showing

我只想要 JToolBar 中的绿色按钮,而不是文本。我认为我的问题代码位于 DebugAction 构造函数中,我在其中调用 super(name, image)。对于工具栏按钮,我只想传递图像。但对于菜单我两者都想要。如何“关闭”JToolBar 项的文本?谢谢!

最佳答案

How can I "turn off" the text for the JToolBar items?

您可以使用以下方法将其关闭:

JButton button = new JButton( action );
button.setHideActionText( true );

或者,您可以重置按钮上的文本:

JButton button = new JButton( action );
button.setText("");

关于java - Swing 操作 - 链接菜单和工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522335/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com