徽徽徽。 2021-05-04 21:53 采纳率: 57.1%
浏览 105
已采纳

javafx如何可以颜色选择器添加到菜单里,或者菜单选项可以弹出颜色选择器啊?


		
			Label lb1=new Label("你好,我是一个标签!!!");
			lb1.setAlignment(Pos.CENTER);
			
			MenuBar mb=new MenuBar();
			Menu m=new Menu("设置");
			
			MenuItem miColor=new MenuItem("设置颜色");
		
			
			pane1.getChildren().addAll(mb,lb1);
			
			mb.getMenus().add(m);
			m.getItems().add(miColor);
			
		
			miColor.setOnAction(new EventHandler<ActionEvent>() {
				@Override
				public void handle(ActionEvent event) {
	
					ColorPicker cp=new ColorPicker();
					cp.setValue(Color.RED);
					lb1.setTextFill(cp.getValue());
					
				}
			});

这个代码不是我要的效果,请问要如何改成我要的效果啊?

  • 写回答

2条回答 默认 最新

  • bosaidongmomo 2021-05-05 06:58
    关注
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class ColorFrame extends JFrame {
    
        private Container container;  //容器
    
        private JPanel colorPanel; //用于反映颜色变化的面板
    
    
        public ColorFrame() {  //构造函数
    
            super( "调色板演示" );  //调用JFrame的构造函数
    
            container = getContentPane();  //得到容器
    
            colorPanel=new JPanel();  //初始化面板
    
    
            JButton selectColorButton = new JButton( "选取颜色" );  //初始化颜色选择按钮
    
            selectColorButton.addActionListener(  //为颜色选择按钮增加事件处理
    
                    new ActionListener() {
    
                        public void actionPerformed( ActionEvent event )
    
                        {
    
                            JColorChooser chooser=new JColorChooser(); //实例化颜色选择器
    
                            Color color=chooser.showDialog(ColorFrame.this,"选取颜色",Color.lightGray );  //得到选择的颜色
    
                            if (color==null)  //如果未选取
    
                                color=Color.gray;  //则设置颜色为灰色
    
                            colorPanel.setBackground(color);  //改变面板的背景色
    
                        }
    
    
                    });
    
            container.add(selectColorButton,BorderLayout.NORTH);  //增加组件
    
            container.add(colorPanel,BorderLayout.CENTER);  //增加组件
    
            setSize( 400, 130 );  //设置窗口尺寸
    
            setVisible(true);  //设置窗口可见
    
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );  //关闭窗口时退出程序
    
        }
    
    
        public static void main(String args[]) {
    
            new ColorFrame();
    
        }
    
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置