在一个Panel上,怎样通过把2个JTextPane放在JScrollPane上,只显示一个滚动条,拖动该滚动条能让两个JTextPane内容一起滚动?要new一个JScrollPane还是两个?(最好能给出部分代码)
解决方案 »
- 大侠们,帮我深思下,++i和i++的区别
- JS 时钟修改问题
- 以前遇到的一道笔试题
- 请高手指教:两个jar包中都有javax包(版本不同),如何调用我要的那个
- 在线等:如何以大字段(BLOB)存储各类文件
- jbuilder的注释都成了:\u662f\u9519\u8bef\u7684Email\u5730\u5740 这样了,怎么改回来正常的中文?
- 我用JB开发了一程序SWING程序,是XXXX.JAVA,请问我要如何才能在别的机子上运行我的程序
- Eclipse 帮助窗口问题求助
- 一个简单的问题 给10分!!
- 100分,江湖救急!!!!关于Applet客户端,和自己创建的服务端传送数据的问题。谁解决谁得分,只给一个人。
- 请问有没有哪个类的哪个方法可以实现关机的功能
- 21天学通java的课后习题在那个网站
import java.awt.GradientPaint;
import java.awt.Graphics2D;/*
* SyncScrollTest.java
*
* Created on 2005年5月31日, 下午2:58
*/
public class SyncScrollTest extends javax.swing.JFrame {
/** Creates new form SyncScrollTest */
public SyncScrollTest() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jPanel1 = new javax.swing.JPanel() {
protected void paintComponent(java.awt.Graphics g) {
Graphics2D g2d = (Graphics2D) g;
GradientPaint gp = new GradientPaint(0, 0, Color.white, 0, getHeight(), Color.blue);
g2d.setPaint(gp);
g2d.fillRect(0, 0, getWidth(), getHeight());
}
};
jScrollPane2 = new javax.swing.JScrollPane();
jPanel2 = new javax.swing.JPanel() {
protected void paintComponent(java.awt.Graphics g) {
Graphics2D g2d = (Graphics2D) g;
GradientPaint gp = new GradientPaint(0, 0, Color.white, 0, getHeight(), Color.red);
g2d.setPaint(gp);
g2d.fillRect(0, 0, getWidth(), getHeight());
}
};
jScrollBar1 = new javax.swing.JScrollBar();
//*****************************************************************
jScrollPane1.getVerticalScrollBar().setModel(jScrollBar1.getModel());
jScrollPane2.getVerticalScrollBar().setModel(jScrollBar1.getModel());
//***************************************************************** getContentPane().setLayout(null); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
// jScrollPane1.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
jPanel1.setPreferredSize(new java.awt.Dimension(500, 2000));
jScrollPane1.setViewportView(jPanel1); getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(30, 40, 200, 300);// jScrollPane2.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
jPanel2.setPreferredSize(new java.awt.Dimension(500, 2000));
jScrollPane2.setViewportView(jPanel2); getContentPane().add(jScrollPane2);
jScrollPane2.setBounds(270, 40, 200, 300); getContentPane().add(jScrollBar1);
jScrollBar1.setBounds(510, 40, 16, 300); setSize(600, 400);
setLocationRelativeTo(null);
}
// </editor-fold>//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SyncScrollTest().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollBar jScrollBar1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
// End of variables declaration//GEN-END:variables
}
顺便问个上例中问题,为什么渐变色是平滑的,看不到颜色的分歧(由浅入深的)?为什么是一个panel上看不到颜色有上深下浅的?
protected void paintComponent(java.awt.Graphics g) {
Graphics2D g2d = (Graphics2D) g;
GradientPaint gp = new GradientPaint(0, 0, Color.blue.darker(), 0, getHeight(), Color.blue.brighter());
g2d.setPaint(gp);
g2d.fillRect(0, 0, getWidth(), getHeight());
}
};
jScrollPane2 = new javax.swing.JScrollPane();
jPanel2 = new javax.swing.JPanel() {
protected void paintComponent(java.awt.Graphics g) {
Graphics2D g2d = (Graphics2D) g;
GradientPaint gp = new GradientPaint(0, 0, Color.red.darker(), 0, getHeight(), Color.red.brighter());
g2d.setPaint(gp);
g2d.fillRect(0, 0, getWidth(), getHeight());
}
};
如果左右两个text不一样长,出现闪屏,滚动条不好用!!!!