我正在尝试将JFrame的不透明度从JMenuItem设置为50%。 我最后的尝试是这样的:
op50.addActionListener((ActionEvent y) -> {
setUndecorated(true);
AWTUtilities.setWindowOpacity(this, 0.5F);
});
但无论我在做什么,我都会遇到一个java.awt.IllegalComponentStateException错误消息:框架是可显示的。
我不知道该怎么做,所以请帮助我。
答案 0 :(得分:0)
如果没有看到完整的代码示例,就无法确定您出错的地方,但这里有一个如何从JMenuItem进行操作的示例。 *请注意,除了Java 1.6之外,这不起作用。
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;
import com.sun.awt.AWTUtilities;
public class Main
{
public static void main(String[] args)
{
final JFrame frame = new JFrame();
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Menu");
menuBar.add(menu);
JMenuItem menuItem = new JMenuItem("Change Opacity");
menuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
AWTUtilities.setWindowOpacity(frame, 0.5F);
}
});
menu.add(menuItem);
frame.setJMenuBar(menuBar);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}