您的位置:

不用java的垂直滚动看板(不用java的垂直滚动看板怎么用)

本文目录一览:

android垂直TextView怎么能让它自动滚动

这是跑马灯的效果。实现该功能步骤:

1、自定义Views,继承自TextView。

2、重写onDrow方法,计算每次的滚动的距离。

3、计算view的Y轴的重点,让当前显示的处于高亮显示状态。

4、定时的刷新View使其界面不断的刷先,出现滚动的效果。

5、实现数据结构,将数据传给view。

几个步骤代码可以参考下面

下面看看主要代码:

1、创建一个类继承TextView

/**

 * @author xushilin

 * 

 * 垂直滚动的TextView Widget

 */

public class VerticalScrollTextView extends TextView

 

2、实现构造函数:

public VerticalScrollTextView(Context context) {

super(context);

init();

}

public VerticalScrollTextView(Context context, AttributeSet attr) {

super(context, attr);

init();

}

public VerticalScrollTextView(Context context, AttributeSet attr, int i) {

super(context, attr, i);

init();

}

private void init() {

setFocusable(true);

//这里主要处理如果没有传入内容显示的默认值

if(list==null){

list=new ArrayListNotice();

Notice sen=new Notice(0,"暂时没有通知公告");

list.add(0, sen);

}

//普通文字的字号,以及画笔颜色的设置

mPaint = new Paint();

mPaint.setAntiAlias(true);

mPaint.setTextSize(16);

mPaint.setColor(Color.BLACK);

mPaint.setTypeface(Typeface.SERIF);

//高亮文字的字号,以及画笔颜色的设置

mPathPaint = new Paint();

mPathPaint.setAntiAlias(true);

mPathPaint.setColor(Color.RED);

mPathPaint.setTextSize(16);

mPathPaint.setTypeface(Typeface.SANS_SERIF);

}

 

3、从写onDraw方法,并计算文字的行距,并且将将普通文字和高亮文字,在这个方法中绘制出来

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

canvas.drawColor(0xEFeffff);

Paint p = mPaint;

Paint p2 = mPathPaint;

p.setTextAlign(Paint.Align.CENTER);

if (index == -1)

return;

p2.setTextAlign(Paint.Align.CENTER);

canvas.drawText(list.get(index).getName(), mX, middleY, p2);

float tempY = middleY;

for (int i = index - 1; i = 0; i--) {

tempY = tempY - DY;

if (tempY  0) {

break;

}

canvas.drawText(list.get(i).getName(), mX, tempY, p);

}

tempY = middleY;

for (int i = index + 1; i  list.size(); i++) {

tempY = tempY + DY;

if (tempY  mY) {

break;

}

canvas.drawText(list.get(i).getName(), mX, tempY, p);

}

}

4、计算Y轴中值以及更新索引

protected void onSizeChanged(int w, int h, int ow, int oh) {

super.onSizeChanged(w, h, ow, oh);

mX = w * 0.5f; 

mY = h;

middleY = h * 0.5f;

}

private long updateIndex(int index) {

if (index == -1)

return -1;

this.index=index;

return index;

}

 

5、定时更新view,并将接口暴露给客户程序调用。

public void updateUI(){

new Thread(new updateThread()).start();

}

class updateThread implements Runnable {

long time = 1000;

int i=0;

public void run() {

while (true) {

long sleeptime = updateIndex(i);

time += sleeptime;

mHandler.post(mUpdateResults);

if (sleeptime == -1)

return;

try {

Thread.sleep(time);

i++;

if(i==getList().size())

i=0;

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

Handler mHandler = new Handler();

Runnable mUpdateResults = new Runnable() {

public void run() {

invalidate(); 

}

};

 

6、xml布局文件中调用:

?xml version="1.0" encoding="utf-8"?   

!-- Demonstrates scrolling with a ScrollView. --   

LinearLayout xmlns:android=""  

    android:layout_width="fill_parent"  

    android:layout_height="fill_parent"  

    android:orientation="vertical"

    com.demo.xsl.text.SampleView      

        android:id="@+id/sampleView1"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:background="@drawable/selector"

       /    

/LinearLayout

7、java代码中调用,传递数据:

package com.demo.xsl.text;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

public class VerticalScrollTextActivity extends Activity {

SampleView mSampleView;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mSampleView = (SampleView) findViewById(R.id.sampleView1);

List lst=new ArrayListSentence();

for(int i=0;i30;i++){

if(i%2==0){

Sentence sen=new Sentence(i,i+"、金球奖三甲揭晓 C罗梅西哈维入围 ");

lst.add(i, sen);

}else{

Sentence sen=new Sentence(i,i+"、公牛欲用三大主力换魔兽?????");

lst.add(i, sen);

}

}

//给View传递数据

mSampleView.setList(lst);

//更新View

mSampleView.updateUI();

}

}

java怎样设置表格滚动条

用swing类里的JScrollPane实现

JScrollPane(Component view,int vsbPolicy,int hsbPolicy)

创建一个 JScrollPane,它将视图组件显示在一个视口中,视图位置可使用一对滚动条控制。滚动条策略指定滚动条在何时显示,例如,如果 vsbPolicy 为 VERTICAL_SCROLLBAR_AS_NEEDED,则只有在垂直查看无法完全显示时,垂直滚动条才显示。可用的策略设定在

setVerticalScrollBarPolicy(int) 和 setHorizontalScrollBarPolicy(int) 中列出。

参数:

view - 将显示在滚动窗格视口中的组件

vsbPolicy - 指定垂直滚动条策略的一个整数

hsbPolicy - 指定水平滚动条策略的一个整数

JScrollPane scrollPane = new JScrollPane(你要添加的表格,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED ,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER

)

Android中TextView如何实现水平和垂直滚动

殇 殇雲的专栏 雲的专栏 软件开发 软件开发 一 一、只想让TextView显示一行,但是文字超过 、只想让TextView显示一行,但是文字超过 在开头显示省略号 android:singleLine="true" android:ellipsize="start" 在结尾显示省略号 android:singleLine="true" android:ellipsize="end" 在中间显示省略号 android:singleLine="true" android:ellipsize="middle" 横向自动滚动(跑马灯效果) android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true" 以上4个效果都要加上�0�2android:singleLine="true",因为TextView默认是会自动换行的 android:marqueeRepeatLimit="marquee_forever"是设置永远重复,当然你也可以设置具体的数字 android:focusable="true"和android:focusableInTouchMode="true"一定要加上,不然滚动效果出不来在Java代码中加入下面一句话就可以实现垂直滚动

java 添加一个竖滚动条

滚动条使用类似于下面的代码创建:

redSlider=new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 255);

add(redSlider);

当用户改变滚动条的值时,滚动条接收一个 AdjustmentEvent 实例。滚动条处理此事件,将它传递给所有已注册的侦听器。

任何希望滚动条值发生变化时被通知的对象都应该实现包 java.awt.event 中定义的 AdjustmentListener接口。调用 addAdjustmentListener 和 removeAdjustmentListener 方法能动态地添加或删除侦听器。

AdjustmentEvent 类定义了五种调整事件,如下所示:

当用户拖动滚动条的滑动块时,发送 AdjustmentEvent.TRACK。

当用户单击水平滚动条的左箭头或垂直滚动条的上箭头,或从键盘做出等效动作时,发送AdjustmentEvent.UNIT_INCREMENT。

当用户单击水平滚动条的右箭头或垂直滚动条的下箭头,或从键盘做出等效动作时,发送AdjustmentEvent.UNIT_DECREMENT。

当用户单击水平滚动条滑动块左边的轨道,或垂直滚动条滑动块上边的轨道时,发送AdjustmentEvent.BLOCK_INCREMENT。按照惯例,如果用户使用定义了 Page Up 键的键盘,则Page Up 键是等效的。

当用户单击水平滚动条滑动块右边的轨道,或垂直滚动条滑动块下边的轨道时,发送AdjustmentEvent.BLOCK_DECREMENT。按照惯例,如果用户使用定义了 Page Down 键的键盘,则Page Down 键是等效的。

Java swing 如何让垂直滚动条始终在最下面

实现:

(1)设置JTextPane 的策略

DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();

caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

(2)当JTextPane 动态增加内容时

resultTextPane.setSelectionStart(resultTextPane.getText().length());

JScrollBar vertical = scrollPane.getVerticalScrollBar();

vertical.setValue( vertical.getMaximum());

说明:

(1)resultTextPane 的类型是JTextPane;

(2)JTextPane和JTextArea的区别:

JTextPane 可以设置html样式;

JTextArea无法设置成为html样式

JAVA 如何使JScrollPane中的JTextArea自动滚动到最后一行

JTextArea经常和JScrollPane 搭配使用.  这样可以通过滚动条显示更多的内容.

如果要使文本域显示最后1行, 有2种方式:

第一种方式:

操控垂直滚动条, 把垂直滚动条移动到最后面即可

JTextArea jta = new JTextArea();

jta.setText("添加很多行的文字");

JScrollPane jsp = new JScrollPane(jta);

jsp.getVerticalScrollBar().setValue(jsp.getVerticalScrollBar().getMaximum());//控制垂直滚动条到最后面

第二种方式:

操作文本域, 把文本域的位置设置到文本的最后.并让文本域获得焦点即可

JTextArea jta = new JTextArea();

jta.setText("添加很多行的文字");

JScrollPane jsp = new JScrollPane(jta);

//下面的代码就是移动到文本域的最后面

jta.selectAll();

if (jta.getSelectedText() != null) {

jta.setCaretPosition(jta.getSelectedText().length());

jta.requestFocus();

}

完整的代码

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class JTPDemo extends JFrame implements ActionListener {

JTextArea jta;

JButton jbHome;

JButton jbEnd;

JScrollPane jsp;

final String NEW_LINE =System.getProperty("line.separator");

public JTPDemo() {

jbHome = new JButton("开始位置");

jbHome.addActionListener(this);

jbEnd = new JButton("最后一行");

jbEnd.addActionListener(this);

JPanel jpsouth = new JPanel();

jpsouth.add(jbHome);

jpsouth.add(jbEnd);

add(jpsouth, BorderLayout.SOUTH);

jta = new JTextArea();

jta.setLineWrap(true);

jta.append("开始"+NEW_LINE);

for (int i = 1; i  50; i++) {

jta.append(i+NEW_LINE);

}

jta.append("最后一行");

jsp =new JScrollPane(jta);

add(jsp);

setTitle("文本域测试");

setSize(360, 320);

setLocationRelativeTo(null);//窗口居中

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

public static void main(String[] args) {

new JTPDemo();

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getSource() == jbHome) {//跳到开始的位置

jsp.getVerticalScrollBar().setValue(jsp.getVerticalScrollBar().getMinimum());

// jta.setCaretPosition(0);

// jta.requestFocus();

} else if (e.getSource() == jbEnd) {//跳到最后一行的位置

jsp.getVerticalScrollBar().setValue(jsp.getVerticalScrollBar().getMaximum());

// jta.selectAll();

// if (jta.getSelectedText() != null) {

// jta.setCaretPosition(jta.getSelectedText().length());

// jta.requestFocus();

// }

}

}

}

效果图

不用java的垂直滚动看板(不用java的垂直滚动看板怎么用

2022-11-15
java滚动条,java滚动条窗口截图

2023-01-05
包含extjs滚动条位置的词条

本文目录一览: 1、extjs 表格横向滚动偏移,有什么方法可以解决吗 2、EXTJS的combo组件的下拉选项框的高度和垂直滚动条如何设置 3、Extjs怎么在panel面板里面设置滚动条 extj

2023-12-08
javascript动态html页面滚动,js内容滚动

2022-11-24
web中js时间滚动(js页面滚动)

本文目录一览: 1、JS实现滚动条触底加载更多 2、java web项目中js怎么取到div中滚动条的高度? 3、js如何控制整个页面滚动条的位置 4、web自动化中页面多个滚动条时的拖动操作? 5、

2023-12-08
cad垂直度标注方法,cad垂直方向尺寸标注

2022-11-26
php垂直搜索引擎,垂直搜索引擎的网址

2022-11-28
Android TextView滚动相关的内容

在Android应用程序的开发中,滚动效果是非常常见的效果。本文将介绍如何实现TextView文字的平滑滚动效果,如何使用Java代码实现TextView的滚动,如何在Android中添加TextSw

2023-12-08
如何使用 JavaScript 判断滚动条是否到达底部

2023-05-18
div滚动

2023-05-21
CSS隐藏滚动条

2023-05-19
CSS禁止滚动的实现

2023-05-21
ps水平变垂直,ps直线垂直

2022-12-02
cad中怎么绘制倾斜直线的垂线,cad怎么画倾斜直线的垂线

2022-12-01
java滚动条,java滚动条组件

2022-12-01
如何为网页表格添加滚动条

2023-05-17
自定义CSS滚动条样式

2023-05-12
如何使用 CSS 修改滚动条样式

2023-05-23
sw鼠标中键的设置,sw鼠标右键设置

2022-12-01
提高用户体验的方法:使用Python Tkinter Scr

2023-05-13