对于学校项目,我需要制作一个简单的绘画应用程序,可以绘制线条,椭圆和矩形.
赋值指定我需要每种类型的形状的工具栏按钮和菜单项.
通过制作JToggleButtons工具栏和菜单项中的按钮,我想稍微超越一点JRadioButtonMenuItems.此外,我想要它,以便当您选择其中一个工具栏按钮时,它取消选择其他按钮,选择适当的菜单项,并取消选择其他菜单项.同样用于选择其中一个菜单项.
我知道我可以组的任何AbstractButton一个ButtonGroup,但我不知道这是正确的道路要走,是因为虽然它处理一个按钮的"组"就好了,我不知道它可以处理两个并行组.
如果没有ButtonGroup意味着在6个事件监听器中的每一个中,我将不得不手动取消选择其他按钮,并且每对将调用相同的代码来设置形状类型.
我也可以制作两个ButtonGroup,一个用于菜单,一个用于工具栏,但是我还必须复制形状类型设置代码.
在任何一种情况下,我都冒着菜单设置按钮的风险,该按钮设置了一个设置按钮的菜单项,ad adintum.
解决这个问题的最佳方法是什么?
(能够通过Netbeans GUI设计器解决问题的好处;它更容易)
如何正确地从添加到JLabel的JComponent返回XxxSize
1.图>>lets LayoutManager works like as for JPanel, JLabel returns Size(0, 0)

第2位.图>>added some PreferredSize to the JLabel

3.图>>calculated PreferredSize from JComponent(s) added to the JLabel

4.图>>lets LayoutManager works changed JLabel to JPanel, now LayoutManager correctly calculated Dimension without using any XxxSize

注意事项有使用Nimbus L&F,所有可访问的L&F都有相同的输出
import java.awt.*;
import java.awt.event.*;
import java.util.LinkedList;
import java.util.Queue;
import javax.swing.*;
public class NimbusBorderPainterDemo extends JFrame {
private static final long serialVersionUID = 1L;
private JFrame frame = new JFrame();
private JPanel fatherPanel …Run Code Online (Sandbox Code Playgroud)