JLabel welcomeLabel = new JLabel("啊基本上都检查表", SwingConstants.CENTER); welcomeLabel.setFont(new Font("楷体", Font.PLAIN, 15)); welcomeLabel.setForeground(Color.WHITE); // 设置 welcomeLabel 的大小和位置,并将其添加到 backgroundLabel 中 welcomeLabel.setBounds(0, 80, 600, 30); backgroundLabel.add(welcomeLabel);修改代码,要求给welcomelabel添加一个黑色的底并且在这个黑底框里水平自动滚动,且不要出现拉动条
时间: 2024-03-21 11:43:19 浏览: 15
可以使用JScrollPane和setViewportView方法来实现这个效果。以下是修改后的代码:
```java
JLabel welcomeLabel = new JLabel("啊基本上都检查表", SwingConstants.CENTER);
welcomeLabel.setFont(new Font("楷体", Font.PLAIN, 15));
welcomeLabel.setForeground(Color.WHITE);
welcomeLabel.setOpaque(true); // 设置为不透明
welcomeLabel.setBackground(Color.BLACK); // 设置背景颜色为黑色
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(welcomeLabel); // 设置JScrollPane的视口为welcomeLabel
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); // 隐藏水平滚动条
// 设置 welcomeLabel 的大小和位置,并将其添加到 backgroundLabel 中
scrollPane.setBounds(0, 80, 600, 30);
backgroundLabel.add(scrollPane);
// 开启水平滚动效果
Timer timer = new Timer(50, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Point p = scrollPane.getViewport().getViewPosition();
p.translate(1, 0);
int max = welcomeLabel.getWidth() - scrollPane.getViewport().getWidth();
if (p.x > max) {
p.x = 0;
}
scrollPane.getViewport().setViewPosition(p);
}
});
timer.start();
```
这样,welcomeLabel就会被放置在一个带有黑色背景和水平自动滚动的JScrollPane中。通过使用Timer定时器来实现水平滚动效果,同时隐藏水平滚动条。