请教一个Java Swing图形化编程的小技术问题.

詹姆斯的一位Fan 2014-02-20 06:39:09
我写了一个JFrame窗口,希望能够用他来想我的用户展示我的“系统数据信息”,面向我的系统数据“比较多”的场景,我进行了:
“借助Swing的JScrollPane实例”进行本窗口的可以让用户进行“拖拽”的“滚动条”的添加:
我的测试源代码如下:
package c_port_packageBJTeacher;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.DataInputStream;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class NoteJFrameUserDportInfo20 extends JFrame implements WindowListener{
/**
*
*/

private static final long serialVersionUID = 1L;
JPanel jP1 = new JPanel();
static String MyworkNum = null;
static Font fnt = new Font("华文中宋",0,20);
static JLabel jL0 = new JLabel();
JTextArea jta1 = new JTextArea();
JScrollPane jpanel = new JScrollPane(jta1);
DataInputStream dips = null;
String SocketData = null;
String[] buffer = null;
String isOurUser = null;
boolean isUser = false;

public NoteJFrameUserDportInfo20(String MyInfo){
this.setTitle("用户工作记录:");
jta1.setLineWrap(true); //如果加上这一句,那么水平方向的滚动条永远不会出现。
jta1.setEditable(false);
this.setBounds(new Rectangle(200,590,400,442));
jP1.setLayout(new BorderLayout());
jta1.setText(MyInfo);
jta1.setFont(fnt);
jta1.setLineWrap(true);
jta1.setWrapStyleWord(true);//激活断行不断字功能
this.add(jP1);
this.setBounds(20,20,300,500);
jP1.add(jpanel,BorderLayout.NORTH);
jta1.setFont(fnt);
this.setVisible(true);
}
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub

}
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
this.setVisible(false);
}
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
this.setVisible(false);
}
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub

}
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub

}
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub

}
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub

}

public static void main(String[] args){
new NoteJFrameUserDportInfo20("加油!!最牛逼伟旺特必!!通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。问题描述: RT,但是直接添加到jframe上面能显示出来,就是不加东西南北位置。通过try{}catch(Throwable a){} 的方式能够处理,但是一般情况下不这样做。 ...因为方法声明出 throws ClassNotFoundException 就告诉了方法调用者 本方法有可能...问题描述: RT,但是直接添加到jfr");
}
}

上文中的代码,运行效果如下:

没有得到我想要的“JScrollPane对象进行的滚动条”的功能实现.
希望大家帮帮忙!!
告诉我怎么修改,并且我的错误出在什么地方?
谢谢大家!!
...全文
198 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码间的舞者 2014-02-20
  • 打赏
  • 举报
回复
哈哈,好久没有接触swing了,学习了
  • 打赏
  • 举报
回复
谢谢kakashi8841哥的相助!! 有kakashi8841哥!!无不黑不牛逼!! 谢谢kakashi8841哥!! 今后有事情,随时叫上小弟我!! 小弟我愿意为kakashi8841哥做,举旗的冲锋队队员!! 谢谢kakashi8841盟主!!
kakashi8841 2014-02-20
  • 打赏
  • 举报
回复
第45行的
jP1.add(jpanel,BorderLayout.NORTH);
改成
jP1.add(jpanel,BorderLayout.CENTER);
或者 第45行的
jP1.add(jpanel,BorderLayout.NORTH);
前面增加一行: jpanel.setPreferredSize(new Dimension(200, 500));
  • 打赏
  • 举报
回复
你要重写JPanel的getPreferredSize方法才行。要设置大小的。点击这里。
teemai 2014-02-20
  • 打赏
  • 举报
回复
没看到你的JTextArea放到JScrollPane啊?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧