下面列出了怎么用javax.swing.plaf.SliderUI的API类实例代码及写法,或者点击链接到github查看源代码。
private void refreshAngleSlider() {
SliderUI ui = new AngleSliderUI();
angleSlider.setUI(ui);
angleSlider.setEnabled(stateEnabled.isSelected());
Dimension d = ui.getPreferredSize(angleSlider);
int z = Math.max(d.width, d.height);
int relativeValue = sizeSlider.getValue() - sizeSlider.getMinimum();
int newValue = z + relativeValue;
sizeSlider.getModel().setRangeProperties(newValue,
sizeSlider.getModel().getExtent(), z, z + 100,
sizeSlider.getModel().getValueIsAdjusting());
angleSlider.setPreferredSize(new Dimension(newValue, newValue));
}
@Override
protected void notifyPlaybackProgress(AudioPlayerComponent apc,
float timeElapsed, float timeAsFraction) {
Fields fields = getFields(apc);
int span = fields.playbackProgress.getMaximum()
- fields.playbackProgress.getMinimum();
int v = (int) (span * timeAsFraction + fields.playbackProgress
.getMinimum());
SliderUI ui = fields.playbackProgress.getUI();
boolean isDragging = ui instanceof WaveformSliderUI ? ((WaveformSliderUI) ui)
.isDragging() : false;
if (!isDragging) {
fields.playbackProgress.removeChangeListener(fields.sliderListener);
fields.playbackProgress.setValue(v);
fields.playbackProgress.addChangeListener(fields.sliderListener);
}
setIcon(fields.playButton, PAUSE_ICON);
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
/**
* Maps {@code JSlider.getUI()} through queue
*/
public SliderUI getUI() {
return (runMapping(new MapAction<SliderUI>("getUI") {
@Override
public SliderUI map() {
return ((JSlider) getSource()).getUI();
}
}));
}
/**
* Maps {@code JSlider.setUI(SliderUI)} through queue
*/
public void setUI(final SliderUI sliderUI) {
runMapping(new MapVoidAction("setUI") {
@Override
public void map() {
((JSlider) getSource()).setUI(sliderUI);
}
});
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static Rectangle getThumbRectField() {
try {
SliderUI ui = slider.getUI();
Field field = BasicSliderUI.class.getDeclaredField("thumbRect");
field.setAccessible(true);
return (Rectangle) field.get(ui);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private JSlider createFontSlider() {
JSlider fontSlider = new JSlider() {
@Override
public String getToolTipText(final MouseEvent event) {
return getValue() + "%";
}
};
ToolTipContext context = new ToolTipContext().setAlignment(Alignment.CENTER)
.setCenterAlignment(Alignment.NORTH)
.setUseBestFit(true)
.setToolTipRectSupplier(e -> {
SliderUI ui = fontSlider.getUI();
if (ui instanceof DarkSliderUI) {
Rectangle r = ((DarkSliderUI) ui).getThumbRect();
r.x -= 1;
return r;
}
return new Rectangle(0, 0, fontSlider.getWidth(),
fontSlider.getHeight());
});
fontSlider.putClientProperty(DarkSliderUI.KEY_INSTANT_SCROLL, true);
fontSlider.putClientProperty(ToolTipConstants.KEY_CONTEXT, context);
fontSlider.putClientProperty(ToolTipConstants.KEY_STYLE, ToolTipConstants.VARIANT_BALLOON);
fontSlider.setToolTipText(String.valueOf(fontSlider.getValue()));
fontSlider.setOrientation(JSlider.HORIZONTAL);
fontSlider.setPaintTicks(true);
fontSlider.setMinimum(FontSizePreset.TINY.getPercentage());
fontSlider.setMaximum(FontSizePreset.HUGE.getPercentage());
int tickSpacing = 25;
Dictionary<Integer, JComponent> dict = fontSlider.createStandardLabels(tickSpacing);
JLabel min = ((JLabel) dict.get(fontSlider.getMinimum()));
UIUpdater.registerComponent(min);
min.setText(resourceBundle.getString("label_font_smaller"));
min.setAlignmentX(JComponent.LEFT_ALIGNMENT);
min.putClientProperty(DarkSliderUI.KEY_MANUAL_LABEL_ALIGN, true);
JLabel mid = ((JLabel) dict.get(fontSlider.getMinimum() + tickSpacing));
UIUpdater.registerComponent(mid);
dict.remove(fontSlider.getMinimum() + tickSpacing);
dict.put(FontSizePreset.NORMAL.getPercentage(), mid);
mid.setText(resourceBundle.getString("label_font_default"));
mid.setAlignmentX(JComponent.CENTER_ALIGNMENT);
mid.setHorizontalTextPosition(JLabel.RIGHT);
JLabel max = ((JLabel) dict.get(fontSlider.getMaximum()));
max.putClientProperty(DarkSliderUI.KEY_MANUAL_LABEL_ALIGN, true);
max.setText(resourceBundle.getString("label_font_bigger"));
max.setAlignmentX(JComponent.RIGHT_ALIGNMENT);
max.putClientProperty(DarkSliderUI.KEY_MANUAL_LABEL_ALIGN, true);
UIUpdater.registerComponent(max);
dict.remove(FontSizePreset.Small.getPercentage());
dict.remove(FontSizePreset.SMALL.getPercentage());
dict.remove(FontSizePreset.Large.getPercentage());
dict.remove(FontSizePreset.LARGE.getPercentage());
dict.remove(FontSizePreset.Huge.getPercentage());
fontSlider.setLabelTable(dict);
fontSlider.setMajorTickSpacing(tickSpacing);
fontSlider.setMinorTickSpacing(tickSpacing);
fontSlider.setPaintLabels(true);
fontSlider.setSnapToTicks(true);
return fontSlider;
}