JavaFX UI组件和多媒体 UML图(全)

Posted nufe_wwt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFX UI组件和多媒体 UML图(全)相关的知识,希望对你有一定的参考价值。

JavaFX UI组件和多媒体 UML图

1.Labeled 和 标签 Label

javafx.scene.control.Labeled
-alignment: ObjectProperty<Pos>指定labeled中文本和结点的对齐方式
-contentDisplay: ObjectProperty<ContentDisplay>使用ContentDisplay中定义的常量TOP、BOTTOM、LEFT和RIGHT指定结点相对于文本的位置
-graphic: ObjectProperty<Node>用于labeled的图形
-graphicTextGap: DoubleProperty图形和文本之间的间隔
-textFill: ObjectProperty<Paint>用于填充文本的图画
-text: StringProperty用于标签的文本
-underline: BooleanProperty文本是否要加下划线
-wrapText: BooleanProperty如果文本超过了宽度,是否要换至下一行
javafx.scene.control.Labelextends Labeled
+Label()创建一个空的Label
+Label(text: String)创建一个特定文本的标签
+Label(text: String, graphic: Node)创建一个特定文本和图形的标签

2.按钮 Button

javafx.scene.control.ButtonBaseextends Labeled
-onAction: ObjectProperty<EventHandler<ActionEvent>>定义一个处理按钮动作的处理器
javafx.scene.control.Buttonextends ButtonBase
+Button()创建一个空按钮
+Button(text: String)创建一个具有给定文本的按钮
+Button(text:String, graphic: Node)创建一个具有给定文本和图片的按钮

3.复选框 CheckBox

javafx.scene.control.ButtonBaseextends Labeled
-onAction: ObjectProperty<EventHandler<ActionEvent>>定义一个处理按钮动作的处理器
javafx.scene.control.CheckBoxextends ButtonBase
-selected: BooleanProperty标识一个复选框是否被选中
—————————————————————————
+CheckBox()创建一个空的复选框
+CheckBox(text: String)创建一个具有特定文本的复选框

4.单选按钮 RadioButton

javafx.scene.control.ToggleButton
-selected: BooleanProperty表明按钮是否被选中
-toggleGroup: ObjectProperty<ToggleGroupe>表明按钮属于的按钮组
——————————————————————————————
+ToggleGroup()创建一个空开关按钮
+ToggleGroup(text: String)创建一个具有指定文本的按钮
+ToggleGroup(text: String, graphic: Node)创建一个具有指定文本和图片的按钮
javafx.scene.control.RadioButtonextends ToggleButton
+RadioButton()创建一个空的单选按钮
+RadioButton(text: String)创建一个具有指定文本的单选按钮

5.文本域 TextField

javafx.scene.control.TextInputControl
-text: StringProperty该组件中的文本内容
-editable: BooleanProperty表明该文本是否可以被用户编辑
javafx.scene.control.TextFieldextends TextInputControl
-alignment: ObjectProperty<Pos>指定文本早文本域中如何对齐
-preColumnCount: IntegerProperty指定文本域优先列数
-onAction: ObjectProperty<EventHanddler<ActionEvent>>指定文本域上动作时间的处理器
————————————————————————————————
+TextField()创建一个空的文本域
+TextField(text: String)创建一个具有指定文本的文本域

6.文本区域 TextArea

javafx.scene.control.TextInputControl
-text: StringProperty该组件中的文本内容
-editable: BooleanProperty表明该文本是否可以被用户编辑
javafx.scene.control.TextAreaextends TextInputControl
-prefColumnCount: IntegerProperty指定文本的优先数列
-prefRowCount: IntegerProperty指定文本的优先行数
-wrapText: BooleanProperty指定文本是否要折到下一行
—————————————————————————————
+TextArea()创建一个空的文本区域
+TextArea(text: String)创建一个具有指定文本的文本区域

7.组合框 ComboBox

javafx.scene.control.ComboBoxBase<T>
-value: ObjectProperty<T>在一个组合框中选择的值
-editable: BooleanProperty指定组合框是否允许用户输入
-onAction: ObjectProperty<EventHandler<ActionEvent>>指定动作处理事件的处理器
javafx.scene.control.ComboBox<T>extends ComboBoxBase<T>
-items: ObjectProperty<ObservableList<T>>在组合框弹出的条目
-visibleRowCount: IntegerProperty组合框弹出部分最多可以显示的条目行数
——————————————————————————————————————
+ComboBox()创建一个空的组合框
+ComboBox(items: ObservableList<T>)创建一个具有指定条目的组合框

8.列表视图 ListView

javafx.scene.control.ListView<T>
-items: ObjectProperty<ObservableList<T>>列表视图中的条目
-orientation: ObjectProperty<Orientation>指明条目在列表视图中是水平还是垂直显示
-selectionModel: ObjectProperty<MultipleSelectionModel<T>>指定条目是如何被选定的,SelectionModel还用于获得选择的条目
——————————————————————————————————————
+ListView()创建一个空的列表视图
+ListView(items: ObservableList<T>)创建一个指定条目的列表视图

9.滚动条 ScrollBar

javafx.scene.control.ScrollBar
-blockIncrement: DoubleProperty单击滚动条轨道时的调节值(默认值:10)
-max: DoubleProperty滚动条代表的最大值(默认值:100)
-min: DoubleProperty滚动条代表的最小值(默认值:0)
-unitIncrement: DoubleProperty当increment()和decrement()方法被调用时对滚动条的调节值
-value: DoubleProperty滚动条的当前值(默认值:0)
-visibleAmount: DoubleProperty滚动条的宽度(默认值:15)
-orientation: ObjectProperty<Orientation>指定滚动条的方向(默认值:HORIZONTAL)
————————————————————————————————————
+ScrollBar()创建一个默认的水平滚动条
+increment()以unitIncrement值增加的滚动条的值
+decrement()以unitIncrement值减少的滚动条的值

10.滑动条 Slider

javafx.scene.control.Slider
-blockIncrement: DoubleProperty单击滚动条轨道时的调节值(默认值:10)
-max: DoubleProperty滚动条代表的最大值(默认值:100)
-min: DoubleProperty滚动条代表的最小值(默认值:0)
-value: DoubleProperty滚动条的当前值(默认值:0)
-orientation: ObjectProperty<Orientation>指定滚动条的方向(默认值:HORIZONTAL)
-majorTickUnit: DoubleProperty主刻度之间的单位距离
-minorTickUnit: IntegerProperty两个主刻度之间放置的次刻度数
-showTickLabels: BooleanProperty指定是否显示刻度标签
-showTickMarks: BooleanProperty指定是否显示刻度
—————————————————————————————————————
+Slider()创建一个默认的水平滑动条
+Slider(min: double, max: double, value: double)创建一个具有指定min、max和值的滑动条

11.一些题目

1.如何判断一个单选按钮是否被选中?
	rb.isSelected()
	
2.可以为单选按钮的graphic属性设置任何节点吗?
	可以
	
3.如何将单选按钮分组?
	ToggleGroup tg = new ToggleGroup;
	rb1.setToggleGroup(tg);
	rb2.setToggleGroup(tg);
	rb3.setToggleGroup(tg);
	
4.可以将文本域的graphic属性设置为一个节点吗?
	通过Eclipse的自动补全,我认为TextField没有graphic属性

5.如何将文本域中的文本设置为右对齐?
	tf.setAlignment(Pos.RIGHT);

6.如何创建一个具有10行、20列的文本区域?
	ta.setPrefRowCount(10);
	ta.setPrefColumnCount(20);

7.如何创建一个组合框并加入三个条目?
	String[] flags = "1", "2" ,"3"
	ComboBox<String> cbo = new ComboBox<>();
	ObservableList<String> items = 
		FX.Collections.observableArrayList(flags);
	cbo.getItems().addAll(items);

8.如何从组合框中获取一个条目?如何从一个组合框中获取一个选中条目?
	cbo.getItems();
	cbo.getValue();

9.如何得到一个组合框中的条目数?如何获得组合框中一个指定索引号的条目?
	cbo.getItems().size();
	cbo.getItems().get(index);
10.当选择一个新的条目时,ComboBox将触发什么事件?
	ActionEvent

11.如何创建一个具有一个字符串数组的可视列表?
	ObservableList<String> items = 
		FXColloctions.observableArrayList("item1", "item2", "item3" ,"item4")

12.如何设置一个列表视图方向?
	lv.setOrientation(Orientation.HORIZONTAL[VERTICAL]);

13.列表视图的两种模式分别是?
	设置单选模式(默认):
		lv.getSelectedModel().setSelectedMode(SelectedMode.SINGLE);
	设置多选模式:
		lv.getSelectedModel().setSelectedMode(SelectedMode.MUTIPLE);

14.如何获得选中的条目以及选中的下标?(单选和多选)
	lv.getSelectionModel().getSelectedItem();
	lv.getSelectionModel().getSelectedIndex();
	lv.getSelectionModel().getSelectedItems();
	lv.getSelectionModel().getSelectedIndices();

15.如何编写代码,用以响应滚动条的value属性的改变?(滑动条同)
	sb.valueProperty().addListener(new InvalidationListener()
		public void invalidated(Observable ov)
			//code block
		
	);
	等同于
	sb.valueProperty().addListener(ov -> //code block);

12.其他知识点

1.ContentDisplay可以理解成节点(例如图形)相对于文本的位置
2.property都实现了observable
3.pref->prefrence 优先
4.TextField 有prefColumnCount属性,因为是一行,所以只有优先列数
5.如果一个文本域(TextField)用于输入密码,使用PasswordField来代替TextField。PasswordField继承自TextField,将输入文本隐藏为回显字符******。
6.TextArea提供滚动支持,但是TextArea在没有超出行(列)数时不会显示行(列)滚动条;但是ScrollPane会一直显示。当文本内容是不可编辑并且内容长时最好使用ScrollPane封装一下(比如小说)。可编辑的文本最好用直接TextField。
7.组合框也成为选择列表或下拉式列表。
8.ComboBox可以触发一个ActionEvent事件。当一个条目被选中时,一个ActionEvent时间被触发。Observable是java.util.List的子接口。所以可以将定义在List中的所有方法应用在Observable。为了方便,JavaFX提供了一个静态方法FXColloctions.observableArrayList(arrayOfElements) 来从一个元素数组中创建一个ObservableList。
9.SelectionModel 不仅用于指定条目是如何被选定的,还用于获得选择的条目。(借鉴11.14)
10.index->indices(复数)
11.垂直滚动条(ScrollBar)的值是从上向下增加的,但是垂直滑动条(Slider)的值是从下往上增加的。


13.补充:视频和音频MediaView和MediaPlayer

Media代表一个媒体源,如一段视频或者音频

javafx.scene.media.Media
-duration:ReadOnlyObjectProperty<Duration>源媒体以秒计时的持续时间
-width:ReadOnlyObjectProperty源媒体以像素为单位的宽度
-height:ReadOnlyObjectProperty源媒体以像素为单位的高度
—————————————————————————————
+Media(source:String)从一个URL源构建一个Media对象

MediaPlayer播放和控制一个媒体

javafx.scene.media.MediaPlayerextends Media
-autoPlay:BooleanProperty指定一个播放是否应该自动开始
-currentCount:ReadOnlyIntegerProperty已经完成的循环重放数
-cycleCount:IntegerProperty指定媒体播放的次数
-mute:BooleanProperty指定音频是否静音
-volume:DoubleProperty音频的音量
-totalDuration:ReadOnlyObjectProperty<Duration>从开始到结束播放媒体的持续时间
—————————————————————————————
+MediaPlayer(media:Media)为指定媒体创建一个播放器
+play():void播放媒体
+pause():void暂停媒体播放
+seek():void将播放器定位到一个新的重新播放时间点

MediaView提供观看媒体的属性

javafx.scene.media.MediaViewextends Media
-x:DoubleProperty指定媒体视图的当前x坐标
-y:DoubleProperty指定媒体视图的当前y坐标
-mediaPlayer:ObjectProperty<MediaPlayer>为视图媒体指定一个媒体播放器
-fitWidth:DoubleProperty为媒体视图指定一个合适的视图宽度
-fitHeight:DoubleProperty为媒体视图指定一个合适的视图高度
—————————————————————————————
+MediaView()构建一个空的媒体视图
+MediaView(mediaPlayer:MediaPlayer)构建一个具有指定媒体播放器的媒体视图

未完待续~
PS:UML图中横线上是属性,下是方法
2020/4/21

以上是关于JavaFX UI组件和多媒体 UML图(全)的主要内容,如果未能解决你的问题,请参考以下文章

UnityEngine.UI类库UML图

如何在 JavaFX 中从 SceneBuilder 访问 UI 组件

求自动售货机的uml组件图和部署图

JavaFX 入门

WEB API接口的实现——常熟电视台全媒体技术开发

UML建模图实战(全)