javafx中按钮颜色变化

2023-11-24

这是我绘制公交车座位的代码。每个Button代表在抽签中抽出的座位GridPane。我想当有人点击座位时将座位颜色从绿色更改为黄色。到目前为止我已经做到了这一点。如果我单击该按钮,它会在输出窗口中打印“hellow world”。但用户界面中的按钮颜色不会改变。这是我的代码:

public static GridPane drawBus(int rows, int col, String ss){
    GridPane table = new GridPane();
    table.setHgap(5);
    table.setVgap(5);
    table.setAlignment(Pos.CENTER);
    String seatName;

    if(ss.equals("ROW WISE")||ss.equals("Row Wise")||ss.equals("row wise")){
    for(int i=0; i<rows; i++){

        for(int j=0;j<col; j++)
        {
        seat=new Button();
        seat.setAlignment(Pos.CENTER);
        seat.setPrefSize(80, 31);

        seatName=numToString(i+1)+(j+1);
        seat.setText(seatName);
        seat.setStyle("-fx-background-color: MediumSeaGreen");


        seat.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {

            seat.setStyle("-fx-background-color: Yellow");
            System.out.println("Hello World!");

        }
        });

        busSeatList.put(seatName, 0);

        //add them to the GridPane
        table.add(seat, j, i); //  (child, columnIndex, rowIndex)

     }


    }
    }
    else
    {
      for(int i=0; i<rows; i++){

        for(int j=0;j<col; j++)
        {
        seat=new Button();
        seat.setAlignment(Pos.CENTER);
        seat.setPrefSize(80, 31);

        seatName=(i+1)+numToString(j+1);
        seat.setText(seatName);
        seat.setStyle("-fx-background-color: MediumSeaGreen");


        seat.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            System.out.println("Hello World!");
            //seat.setStyle("-fx-background-color: Yellow");

        }
        });



        busSeatList.put(seatName, 0);
        //add them to the GridPane
        table.add(seat, j, i); //  (child, columnIndex, rowIndex)


       }


    }


    }


    return table;
}

使用已经实现此功能的类并使用样式表会更容易。ToggleButton是适合您需求的课程:

ToggleButton btn = new ToggleButton("Say 'Hello World'");
btn.setOnAction((ActionEvent event) -> {
    System.out.println("Hello World!");
});

...
scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());

样式.css

.toggle-button {
    -fx-background-color: green;
}

.toggle-button:selected {
    -fx-background-color: yellow;
}

顺便说一句:您的代码中的问题可能是使用一个字段(seat)来存储按钮。这样如果你按any按钮,最后创建的将始终是修改的。用一个final如果您想继续使用您的实现,请在内部循环中声明局部变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javafx中按钮颜色变化 的相关文章

  • 获取文件的锁

    我想在对特定文件开始 threo read 时获取文件上的锁定 以便其他应用程序无法读取已锁定的文件并希望在线程终止时释放锁定文件 您可以获得一个FileLock https docs oracle com javase 8 docs ap
  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • 使用 WebDriver 单击新打开的选项卡中的链接

    有人可以在这种情况下帮助我吗 场景是 有一个网页 我仅在新选项卡中打开所有指定的链接 现在我尝试单击新打开的选项卡中的任何一个链接 在下面尝试过 但它仅单击主 第一个选项卡中的一个链接 而不是在新选项卡中 new Actions drive
  • Android 中的列表(特别是 RecyclerView 和 CardView)如何工作

    请原谅我问这个问题 但我是 Android 开发新手 尽管我正在尝试了解developer android com 网站上的基础知识 但大多数示例 即使他们说它们是为 Android Studio 构建的 尚未设置为使用 Gradle 因此
  • 当路径的点超出视野时,Android Canvas 不会绘制路径

    我在绘制路径时遇到了 Android Canvas 的一些问题 我的情况是 我有一个相对布局工作 如地图视图 不使用 google api 或类似的东西 我必须在该视图上绘制一条路径 canvas drawPath polyPath bor
  • (Java) App Engine 中的静态文件无法访问

    The 示例文档 http code google com appengine docs java gettingstarted staticfiles html表示您只需将文件放在 war 或子目录 中 并且应该可以从主机访问它们 只要它
  • 如何将jscrollpane添加到jframe?

    我有以下源代码 有人可以给我建议如何将 jscrollpane 添加到 jframe 上吗 我尝试了几次将其添加到 jframe 但没有任何进展 它甚至没有显示 public class Form3 JFrame jframe new JF
  • 删除优先级队列的尾部元素

    如何删除优先级队列的尾部元素 我正在尝试使用优先级队列实现波束搜索 一旦优先级队列已满 我想删除最后一个元素 优先级最低的元素 Thanks 没有简单的方法 将元素从原始元素复制到新元素 最后一个除外 PriorityQueue remov
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • 为什么 MOVE CURSOR 在 OS X Mountain Lion 上不显示?

    我正在做一个项目 想看看 Swing 提供的每个光标是什么样子的 public class Test public static void main String args JFrame frame new JFrame frame set
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • 如何通过注解用try-catch包装方法?

    如果应该在方法调用中忽略异常 则可以编写以下内容 public void addEntryIfPresent String key Dto dto try Map
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • 无法在 Java/Apache HttpClient 中处理带有垂直/管道栏的 url

    例如 如果我想处理这个网址 post new HttpPost http testurl com lists lprocess action LoadList 401814 1 Java Apache 不允许我这么做 因为它说竖线 是非法的
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • 何时在 hibernate 中使用 DiscriminatorValue 注解

    在 hibernate 中使用 DiscriminatorValue 注释的最佳场景是什么以及何时 这两个链接最能帮助我理解继承概念 http docs oracle com javaee 6 tutorial doc bnbqn html
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • 如何使用通配符模拟泛型方法的行为

    我正在使用 EasyMock 3 2 我想基于 Spring Security 为我的部分安全系统编写一个测试 我想嘲笑Authentication http docs spring io autorepo docs spring secu

随机推荐

  • 获取 Cython 指针的值

    我正在编写一个构造 malloc 的函数unsigned char 数组 然后返回指针 在纯 Cython 或 C 中 这很容易 您所要做的就是在函数上设置返回类型 然后返回指向数组的指针 完毕 但是 我已经达到了需要将指向在 Cython
  • debugByteArray 和 copyPixelsToBuffer 不起作用。 SkImageDecoder::Factory 返回 null

    我有一个类 TouchPoint 实现了 Serialized 因为它包含 Bitmap 所以我为该类编写了 writeObject 和 readObject private void writeObject ObjectOutputStr
  • “绿色线程”和Erlang的进程有什么区别?

    在阅读了 Erlang 的轻量级进程之后 我非常确定它们是 绿色线程 直到我读到绿色线程和Erlang进程之间存在差异 但我不明白 实际差异是什么 绿色线程可以直接在它们之间共享数据内存 尽管当然需要同步 Erlang 不使用 绿色线程 而
  • 一次性计算精度、召回率和 F 分数 - python

    准确度 精确度 召回率和 f 分数是机器学习系统中系统质量的衡量标准 它取决于真 假阳性 阴性的混淆矩阵 给定一个二元分类任务 我尝试了以下方法来获得返回准确度 精确度 召回率和 f 分数的函数 gold 1 0 9 predicted 1
  • .unsubscribe 和 .take(1) 之间的区别

    我想知道 使用之间的性能是否有任何差异 take 1 and unsubscribe when unsubscribe订阅后立即使用 var observable Rx Observable interval 100 First var s
  • Express:从内容类型“application/json; charset=utf-8”中删除 charset=utf-8

    我有一个基于 NodeJS 和 Express 的应用程序 每次我试图获取响应时 我都会得到Content Type application json charset utf 8 我无法在前端解析它 因为我期待带有标头的响应Content
  • 声纳想要关闭流[重复]

    这个问题在这里已经有答案了 我有下一个代码 private Stream
  • 如何在 Spring 3.1 应用程序中声明 JSF 托管 bean?

    这是我第一次开发基于 Java EE 架构的应用程序 我正在使用 JSF 2 0 春季3 1 JPA 2 0 我想请教您一个我有点困惑的问题 我想声明我的 JSF 托管 bean 但有很多解决方案可以处理此约束 在 faces config
  • PHP(文件夹)文件按字母顺序列出?

    我不确定这有多简单 但我正在使用一个显示特定文件夹中的文件的脚本 但是我希望它们按字母顺序显示 这样做会很难吗 这是我正在使用的代码 if handle opendir mainframe gt getCfg absolute path i
  • 为什么在 dll 内不调用 threadTerminate

    我有一个问题 与正常应用程序中的相同代码相比 我的 dll 中的代码的行为不同 经过一些调试后 我发现 dll 中从未调用线程的 OnTerminate type TTest class private public procedure t
  • 将 conda 包安装到 google colab

    我尝试将 anaconda 中的软件包安装到 google 的 colab 中 但这不起作用 整件事都是巫毒魔法 以下代码位于一个单元格中 笔记本的电池 wget https repo anaconda com miniconda Mini
  • 如何在 Objective C 中调用 +class 方法而不引用该类?

    我有一系列 策略 对象 我认为将它们作为一组策略类上的类方法来实现很方便 我为此指定了一个协议 并创建了符合的类 下面仅显示一个 protocol Counter NSInteger countFor Model model end int
  • 处理 JAXB 集合

    我正在尝试使用 JAXB 解组以下 XML
  • JavaQuartz 作业持久化

    我对 Java Quartz 不太熟悉 我们只是使用了每天安排的测试作业 对于我们的 Struts2 Web 应用程序 我们希望运行一些安排在一天中不同时间的日常作业 这些作业应该处于持久状态 这样即使作业由于服务器关闭 应用程序失败而失败
  • Wordpress - 使用媒体库获取图像

    我正在创建一个插件 并且有一个管理页面 在该页面的选项中 我想添加一个按钮 允许我打开 Wordpress 媒体库并从中选择图像 之后获取所选图像的 URL 和alt属性 如果可以的话 我该如何使用 AJAX 来做到这一点 首先 您需要将
  • 查询中 Group by 的奇怪行为需要优化

    谁能帮我优化这个查询 SELECT debit side account code CODE GROUP CONCAT DISTINCT accounts name AS DebitAccount GROUP CONCAT debit si
  • 水平居中时,li 被切断

    我正在尝试布局li s using flexbox 我将它们设置为列 其中 3li s在每一列中 问题是当我想要ul居中 我以ul using align content center 当我这样做并且拥有更多li s超出页面可以显示的范围
  • CodeIgniter/PHP Active Record 不会增加整数

    这是我在 CodeIgniter 的 Active Record 中的查询 function calculate invites userid this gt db gt where id userid gt update users ar
  • Flutter:[cloud_firestore/unknown] NoSuchMethodError:null 上的成员无效:“includeMetadataChanges”(Flutter Web)

    我正在尝试从 Friebase firestore 获取数据 然后将其转换为模型 我对另一个项目 Web 项目 使用了相同的代码和方法 它工作正常 但对于这个项目它不起作用 我不知道为什么 我升级了flutter版本 运行了Flutter
  • javafx中按钮颜色变化

    这是我绘制公交车座位的代码 每个Button代表在抽签中抽出的座位GridPane 我想当有人点击座位时将座位颜色从绿色更改为黄色 到目前为止我已经做到了这一点 如果我单击该按钮 它会在输出窗口中打印 hellow world 但用户界面中