【Java AWT 图形界面编程】Container 容器 ③ ( ScrollPane 可滚动容器示例 )





一、ScrollPane 可滚动容器示例



ScrollPane 可滚动容器 无法在 屏幕中独立存在 , 必须 依赖于 Frame 窗口而存在 ;

如果要 显示 ScrollPane 可滚动容器 , 需要 将其添加到 Frame 窗口中 才能显示出来 ;


代码示例 :

import java.awt.*;

public class HelloAWT {
    public static void main(String[] args) {
        // 创建窗口
        Frame frame = new Frame("AWT 图形界面编程");

        // 创建 ScrollPan 容器实例对象
        // 默认情况下 ScrollPan 容器 只有在显示不下的时候才显示滚动条
        // 如果在构造函数中设置了 ScrollPane.SCROLLBARS_ALWAYS 参数, 则总是显示滚动条
        ScrollPane scrollPane = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);

        // 向 ScrollPan 容器中添加 Component 组件
        scrollPane.add(new TextField("测试文本"));
        scrollPane.add(new Button("测试按钮"));

        // 将 ScrollPan 添加到 Frame 窗口中
        frame.add(scrollPane);


        // 设置窗口位置和大小
        frame.setBounds(50, 50, 800, 500);

        // 设置窗口可见
        frame.setVisible(true);
    }
}

执行结果 : 执行后发现 , 只显示 按钮组件 , 文本组件被覆盖在了按钮组件后面 , 这与布局管理器有关 ;

在这里插入图片描述

要实现一个滚动界面抽奖,你可以使用Java的Swing库。下面是一个简单的示例代码,演示了如何创建一个滚动界面抽奖的程序: ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; public class LotteryApp extends JFrame implements ActionListener { private JTextArea textArea; private JButton startButton; private Timer timer; private Random random; public LotteryApp() { setTitle("滚动界面抽奖"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); textArea = new JTextArea(10, 20); textArea.setEditable(false); JScrollPane scrollPane = new JScrollPane(textArea); startButton = new JButton("开始抽奖"); startButton.addActionListener(this); Container container = getContentPane(); container.setLayout(new BorderLayout()); container.add(scrollPane, BorderLayout.CENTER); container.add(startButton, BorderLayout.SOUTH); pack(); setLocationRelativeTo(null); random = new Random(); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == startButton) { if (timer != null && timer.isRunning()) { timer.stop(); startButton.setText("开始抽奖"); } else { timer = new Timer(100, new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int number = random.nextInt(100); // 这里可以根据需要修改范围 textArea.setText(String.valueOf(number)); } }); timer.start(); startButton.setText("停止抽奖"); } } } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new LotteryApp().setVisible(true); } }); } } ``` 这个程序使用了JFrame作为主窗口容器,其中包括一个JTextArea用来显示抽奖结果,一个JScrollPane用来给JTextArea提供滚动功能,以及一个JButton用来控制抽奖的开始和停止。抽奖结果是通过定时器每隔一段时间生成一个随机数来实现的。 你可以根据需要修改抽奖的范围和滚动界面的布局。运行这段代码,点击"开始抽奖"按钮即可开始滚动界面抽奖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值