- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JavaFX,特别是:
javafx.scene.shape.Rectangle
javafx.scene.shape.Ellipse
javafx.scene.shape.Line
我需要额外的方法,所以我创建了接口(interface) MoreFunctions
。我创建了三个继承自上述类并实现 MoreFunctions
的新类,即:
public class MyRectangle extends javafx.scene.shape.Rectangle implements MoreFunctions {
...
}
只要 MyRectangle
和 MyEllipse
对附加方法有不同的实现,就可以了。 但是我应该在哪里放置具有相同实现的方法呢?我无法更改父类,因为我无法修改框架。 默认接口(interface)方法是唯一(可行)的方法吗?但是,方法所依赖的常见属性呢?
编辑:一个常用方法的例子
public void toggleSelection() {
if (!selected) {
setStrokeWidth(5);
setStroke(Color.RED);
selected = true;
}
else {
setStrokeWidth(0);
selected = false;
}
}
这需要
private boolean selected;
最佳答案
听起来有点像你在找mixin功能,doesn't really exist in Java .您也许可以 simulate mixins using Java 8 functionality或通过 special purpose 3rd party mixin support library .
但是,如果您使用传递方法或组合对象,对于其他开发人员来说事情可能会更直接一些。您的每个 Shape 子类都可以 delegate实现特定功能(例如选择切换)的通用类的功能,而不是依赖默认方法等新语言功能。
通过检查各种 JavaFX 类中选择功能的处理方式,您可以看到可继承或固有功能与委托(delegate)或组合方法的区别。 ToggleButton有一个 selectedProperty,所以它直接实现了选择功能。但是,ListView 有一个 selectionModelProperty ,因此 ListView 的选择建模能力被委托(delegate)给关联的类,而不是直接在 ListView 本身中实现。
当然,当您拥有像 JavaFX Controls 这样的 MVC 风格系统时,事情会变得有点复杂。 ,但您可能不需要将系统编码到那种复杂程度。不过,您可能想检查如何 CSS support is added to controls并考虑使用类似的基于 CSS 的支持来实现选定形状的样式等功能,而不是直接在代码中编写样式。
关于java - 如果我不能更改父类,那么将公共(public)属性和方法实现放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682945/
我当前项目中的许多类都有几个只能从类本身内部调用的属性和方法。此外,根据类(class)的当前状态,它们可能会扰乱类(class)的工作。 目前,所有这些接口(interface)都在 .h 文件的主
我想使用ngbTabSet将nav-pills in card-header 和tab-content in card-body。但我不知道该怎么做。 这是我尝试实现的示例(使用 bootstrap.
我正在浏览文档以查找如何允许放置在停靠栏图标上。据我所知,建议您使用 LSItemContentTypes,因为 CFBundleTypeOSTypes 已弃用。但是,我无法让 LSItemConte
我正在尝试在书签中使用 jquery UI 作为 slider 。并且 jquery ui 要求在普通 jquery 文件之后包含该文件。 所以到目前为止我所尝试的只是将脚本附加到 header ,同
您好,我尝试了广泛的谷歌搜索,但似乎没有任何帮助。 这是我的场景: 公司 Logo 存储在外部域/网址(矩形)中。 带有谷歌地图的 Ionic 应用程序,将这些 Logo 作为标记放置在 map 上。
我今天在阅读我的一些 C# 代码时发现了这一行: if (ProgenyList.ItemContainerGenerator.Status != System.Windows.Controls.Pr
我刚遇到this question在 Go FAQ 中,它让我想起了困扰我一段时间的事情。不幸的是,我真的不明白答案是什么。 似乎几乎所有非 C 类语言都将类型放在变量名之后,如下所示: var :
这是有效的 HTML 吗? 最佳答案 作为元素可以包含 phrasing content ,以及属于该组,则有效。 从语义上(并且具有一些常识),如果唯一的内容是 , 不;如果它同时包含文本和图像
这是有效的 HTML 吗? 最佳答案 作为元素可以包含 phrasing content ,以及属于该组,则有效。 从语义上(并且具有一些常识),如果唯一的内容是 , 不;如果它同时包含文本和图像
我有两本 T.Parr 写的关于 ANTLR 的书,我到处都看到美元符号和符号的引用。它也对我有用: term : IDENT -> { new TokenNode($IDENT) }; 或更复杂的东
我在实现段控制时遇到了一些问题。因为我希望它是一个固定的标题,所以当我滚动时我总是可以看到它,我已经在 - (UIView *)tableView:(UITableView *)tableView v
我有一个 20x36px (10x18pt) 的箭头图像,当我选择一个 UIImageView 时,将它拖到我的 View Controller 上然后设置图像,它总是模糊的。我只在我的项目中包含 @
How can I put background image when I hover a link Insert Bg in this a when hov
我需要在我的 .container 中添加(最新的第一个)新分区,但在 .controls (按钮)之后。可能吗? 注意:添加新的分区来保存按钮下方的前置控件对我来说不是一个选择。 HTML 需要保持
我是一名优秀的程序员,十分优秀!