今天写了一个Java代码,希望能给你带来帮助。
实现从一个文本文件中读取内容,并把文本内容用滚动页面呈现出来,循环播放。
//package design;
import java.util.ArrayList;
import java.awt.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.*;
import java.util.*;
import javax.swing.JPanel;
public class RollingUpDown extends JFrame{
HeadlinePanel news = new HeadlinePanel();
public RollingUpDown() {
super(" 中奖信息 ");
setSize(1200, 600);//设置窗口大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭按钮响应方式
JPanel pane = new JPanel();
pane.setLayout(new GridLayout(1, 1, 15, 15));//设置布局
pane.add(news);
setContentPane(pane);
show();
news.scroll();
}
public static void main(String[] arguments) {
RollingUpDown head = new RollingUpDown();
}
}
class HeadlinePanel extends JPanel {
int height = 500;
int y = height-40;
void scroll() {
ArrayList<String> arrayList = new ArrayList<>();
try {
FileReader fr = new FileReader("C:\\Users\\19391\\Desktop\\Java课程设计\\select.txt");**//把这个地址换为你想要读入的文本文件地址**
BufferedReader bf = new BufferedReader(fr);
String str;
// 按行读取字符串
while ((str = bf.readLine()) != null) {
arrayList.add(str);
}
bf.close();
fr.close();
}
catch (IOException e) {
e.printStackTrace();
}
// 对ArrayList中存储的字符串进行处理
int length = arrayList.size();int n=length;
String[] headlines = new String[length];
for (int i = 0; i < length; i++) {
headlines[i]= arrayList.get(i);
}
while (true) {
y = y - 1;
if (y < -headlines.length*20)//如果到了窗口底部
y = height-40;
repaint();//重绘窗口
try {
Thread.sleep(20);
} catch (InterruptedException e) { }
}
}
public void paintComponent(Graphics comp) {
ArrayList<String> arrayList = new ArrayList<>();
try {
FileReader fr = new FileReader("C:\\Users\\19391\\Desktop\\Java课程设计\\select.txt");//把这个地址换为你想要读入的文本文件地址
BufferedReader bf = new BufferedReader(fr);
String str;
// 按行读取字符串
while ((str = bf.readLine()) != null) {
arrayList.add(str);
}
bf.close();
fr.close();
}
catch (IOException e) {
e.printStackTrace();
}
// 对ArrayList中存储的字符串进行处理
int length = arrayList.size();int n=length;
String[] headlines = new String[length];
for (int i = 0; i < length; i++) {
headlines[i]= arrayList.get(i);
}
Graphics2D comp2D = (Graphics2D)comp;
Font type = new Font("楷体", Font.BOLD, 20);//字体对象
GradientPaint gp=new GradientPaint(0,0,Color.yellow,0,getSize().height,Color.white,false);//背景颜色渐变(黄-->白)
comp2D.setFont(type);//设置字体
comp2D.setPaint(gp);
GradientPaint gp2=new GradientPaint(0,0,Color.blue,0,getSize().height,Color.orange,false);//字体颜色渐变(橙-->蓝)
comp2D.fillRect(0, 0, getSize().width, getSize().height);
comp2D.setPaint(gp2);
for (int i = 0; i < headlines.length; i++)//设置每一行字的位置
comp2D.drawString(headlines[i], 100, y + (20 * i));
}
}