Code
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
JLabel label = new JLabel(LocalTime.now().format(formatter), SwingConstants.CENTER);
Timer timer = new Timer(100, null);
timer.addActionListener(e -> {
label.setText(LocalTime.now().format(formatter));
Container parent = SwingUtilities.getUnwrappedParent(label);
if (Objects.nonNull(parent) && parent.isOpaque()) {
repaintWindowAncestor(label);
}
});
// ...
private void repaintWindowAncestor(JComponent c) {
JRootPane root = c.getRootPane();
if (root == null) {
return;
}
Rectangle r = SwingUtilities.convertRectangle(c, c.getBounds(), root);
root.repaint(r.x, r.y, r.width, r.height);
}
References
No comments:
Post a Comment