添加了JTable的JScrollPane不能显示出来

dgdcoco 2015-05-05 05:08:09
在同一快JPane上添加了两个相同大小的JScrollPane,初始化一个显示一个不显示,两个JScrollPane分别add了两个不同的JTable。
在点击按钮相应函数里,原来显示的JScrollPane调用setVisible(false),不显示的setVisible(true)
点击按钮结果两个JScrollPane都没有显示,为什么后一个setVisible(true)无效呢,求大侠指教,万分感谢!
...全文
1000 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pineappleli 2018-11-07
  • 打赏
  • 举报
回复
引用 2 楼 wcs1989 的回复:
估计是因为布局管理器的问题,你第一个jsc 设置为不可见,第二个设置为可见,但是第二个大小估计为0,可以用getBounds来求证一下,所以也是看不见的。解决这个问题,建议楼主试试cardlayout

确实 我加了布局管理器就好了
dgdcoco 2015-05-06
  • 打赏
  • 举报
回复
引用 8 楼 zys59 的回复:
方便的话可以把你的代码传给我,我调试下看看。
谢谢,设置了JscrollPane的大小就显示出来了,可能是布局管理器的问题,我用XYLayout添加JscrollPane的时候就设置了大小,可能两个控件不能有重叠的地方,谢谢大家!
三仙半 2015-05-06
  • 打赏
  • 举报
回复
方便的话可以把你的代码传给我,我调试下看看。
三仙半 2015-05-06
  • 打赏
  • 举报
回复
JTable实例你调用了setSize()或者setBounds()了吗?显式的设置一下JscrollPane的大小试试。
dgdcoco 2015-05-06
  • 打赏
  • 举报
回复
引用 2 楼 wcs1989 的回复:
估计是因为布局管理器的问题,你第一个jsc 设置为不可见,第二个设置为可见,但是第二个大小估计为0,可以用getBounds来求证一下,所以也是看不见的。解决这个问题,建议楼主试试cardlayout
果然第二个大小为0了,我面板上添加了很多控件,如果还是要用XYLayout,请问要如何解决好呢?
dgdcoco 2015-05-06
  • 打赏
  • 举报
回复
引用 3 楼 zys59 的回复:
试试只添加一个,需要显示另一个时,移除前一个,再把要显示的添加上去。
我试了把前一个remove,再添加后一个,也是无法显示后一个。。。
dgdcoco 2015-05-06
  • 打赏
  • 举报
回复
我是用XYLayout的,两个jscrollPane的坐标一样的
三仙半 2015-05-06
  • 打赏
  • 举报
回复
试试只添加一个,需要显示另一个时,移除前一个,再把要显示的添加上去。
O_森_O 2015-05-06
  • 打赏
  • 举报
回复
估计是因为布局管理器的问题,你第一个jsc 设置为不可见,第二个设置为可见,但是第二个大小估计为0,可以用getBounds来求证一下,所以也是看不见的。解决这个问题,建议楼主试试cardlayout
dgdcoco 2015-05-06
  • 打赏
  • 举报
回复
自己顶一下,望高手回答~
实验报告 "学院 "计算机学院 "班级 " "学号 " "姓名 " " "课程名称 "Java程序设计 "实验日期 " " "实验名称 "数据库应用开发 "成绩 " " "实验目的:深入理解JDBC数据库驱动程序的概念,掌握JDBC提供的访问数据库相 " "关接口和类的应用,掌握使用JDBC的Java数据库应用程序开发的基本步骤和方法 " "。 " "实验条件:使用JDK和Eclipse " "实验目的 " "本实验要求学生使用JDBC提供的接口和类编写一个Java应用程序,实现对学生数 " "据信息的查询、删除、插入、更新等操作。学生数据库(student)在MySQL数据 " "库服务器中创建。 " "1. 在MySQL中创建学生数据库student,其中一个学生信息表stuinfo结构如下: " " " "图1 stuinfo表结构 " " " "2. 设计一个Java程序,界面如图2所示,实现以下功能: " "(1)点击"全部检索"按钮,检索stuinfo表的所有记录,显示在上面的JTable组 " "件中; " "(2)输入查询学号,点击"查询"按钮,查询该学生信息显示在左边面板中,查询" "不到时弹出信息提示。 " "(3)左边面板中输入学生信息,点击"添加"按钮,将此学生信息插入stuinfo表 " "中,弹出插入是否成功的提示框。 " "(4)点击"删除"按钮,依据上边学号值删除该学生记录,弹出删除是否成功的提" "示框。 " "(5)点击"更新"按钮,依据上边学号值更新该学生的其它信息,弹出更新是否成" "功的提示框。 " "主要代码: " "public class MyWindow { " "DBControl dbc = new DBControl(); " "MyTableModel mtm; " "private JFrame frame; " "private JTextField numberText; " "private JTextField nameText; " "private JTextField birthdayText; " "private JTextField provinceText; " "private JTextField cityText; " "private JTextField queryNumberText; " "private JRadioButton maleButton; " "private JRadioButton femaleButton; " "private JButton addButton; " "private JButton deleteButton; " "private JButton refreshButton; " "private JScrollPane scrollPane; " "private JButton queryButton; " "private JTable table; " "private JLabel label_1; " "private JLabel label_2; " "private JLabel label_3; " "private JLabel label_4; " "private JLabel label_5; " " " "public static void main(String[] args) { " "EventQueue.invokeLater(new Runnable() { " "public void run() { " "try { " "MyWindow window = new MyWindow(); " "window.frame.setVisible(true); " "} catch (Exception e) { " "e.printStackTrace(); " "} " "} " "}); " "} " " " "public MyWindow() throws Exception { " "initialize(); " "} " " " "// 创建一个表格 " "public void refreshTable() throws Exception { " "if (scrollPane != null) { " "frame.remove(scrollPane); " "} " "// 创建一个model " "MyTableModel model = new MyTableModel(); " "// 通过model建立一个表 " "table = new JTable(model); " "// 将表放到滚动面板里 " "scrol
     目录 第一章 列车车次管理系统需求分析 2 1.1 需求分析和概述 2 1.2 系统分析 2 第二章 数据库的设计 4 2.1 E-R图 4 2.2 表的结构说明 4 第三章 前台主界面的设计 5 3.1主界面概述 5 3.2前台主界面的实现 5 3.3数据库的连接 8 3.4界面事件监听 8 附录 14 第一章 列车车次管理系统需求分析 1.1 需求分析和概述    中国地域辽阔,铁路线纵横繁多,给人们的出行带来了极大的方便,但随着火车站客流量的不断增长,越来越多的弊端暴露在人们面前,如:    火车查询效率低下    浪费乘客大量时间    浪费大量人力资源 在这样的情景下更需要良好的系统来管理列车的时间及列车所到车站。      本系统对于指定的列车车次,可以对它的出发时间、到站时间、途经车站等进行添加、修改和删除。 1.2 系统分析 本系统是针对管理员对列车车次的管理的开发的,其主要功能是:   1)增加、修改、删除一个列车车次信息。   2)按条件显示车次信息(条件有按车次、出发时间、到站时间、途经车站等)。       系统结构图如下 第二章 数据库的设计 2.1 E-R图   这一设计阶段是在系统功能结构图的基础上进行的,设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。根据以上的分析设计结果,得到列车实体。下面来介绍车次实体的E-R图。 列车实体包括:车次,出发时间,结束时间,途径车站。E-R图如图2.1.1所示。    2.2 表的结构说明   在本系统中,。train数据表中保存婴儿出生信息,该表的结构如下表 表2.2.1 train表结构 字段名 信息说明 类型 最大字符数 备注 number 列车车次 char 4 主键 starttime 出发时间 char 10 允许为空 endtime 到站时间 char 10 允许为空 via 途经车站 char 10 允许为空 第三章 前台主界面的设计 3.1主界面概述   界面是用户与程序进行交互的接口,用户可以从界面中查看程序显示给用户的信息,程序可以从界面中获取用户输入的数据。通常用户不会去关心程序的界面是如何实现的,更多的会在意界面中提供的信息、功能及界面的布局是否合理。所以在进行界面设计时,不仅要从程序开发的角度上分析,还要考虑到界面的美观及布局。   本系统前台主界面的运行效果如图4.1所示。    前台主界面效果图 3.2前台主界面的实现 为了方便的实现查询功能,在jtable里面显示数据库信息,主界面里自定义了CreateTable类。 class CreateTable{ public Vector vector = null; public AbstractTableModel tm = null; public JScrollPane scroll; public String[] title;//表格表头 public CreateTable(String[] head) { JTable table; title=(String[])head.clone(); vector = new Vector(); tm = new AbstractTableModel() { //通过重写table来定义自己的表格模式 public int getColumnCount() { return title.length; } public int getRowCount() { return vector.size(); } public Object getValueAt(int row, int column) { if (!vector.isEmpty()) { return ((Vector) vector.elementAt(row)).elementAt(column); } else { return null; } } public void setValueAt(Object value, int row, int column) { } public String getColumnName(int column) { return title[column]; } public Class getColumnClass(int c) {
java 通讯录 可以用来做课程设计 代码 import java.awt.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; import java.awt.event.*; import java.sql.*; import java.util.Vector; import java.sql.ResultSet; //******************************定义主窗口******************************** class Interface extends JFrame { JLabel txl=new JLabel("通讯录记录如下:"); JButton bc=new JButton("保存"); JButton sx=new JButton("刷新"); JButton tc=new JButton("退出"); JButton tj=new JButton("添加"); JButton sc=new JButton("删除"); JButton cz=new JButton("查找"); JMenuBar bar=new JMenuBar(); JMenu wj=new JMenu("文件"); JMenu bj=new JMenu("编辑"); JMenu bz=new JMenu("帮助"); JMenuItem barbc = new JMenuItem("保存"); JMenuItem bartc = new JMenuItem("退出"); JMenuItem bartj = new JMenuItem("添加"); JMenuItem barsy = new JMenuItem("如何使用?"); JMenuItem bargy = new JMenuItem("关于"); JMenuItem barsc = new JMenuItem("删除"); JMenuItem barcz = new JMenuItem("查找"); JMenuItem barlj = new JMenuItem("测试与数据库连接"); JMenu barpx = new JMenu("排序"); JMenuItem barpxid = new JMenuItem("按序号排序"); JMenuItem barpxxm = new JMenuItem("按姓名排序"); TableColumn column=new TableColumn(); static Object PersonInfo[][]={}; static String head[] = {"ID","姓名","性别","电话","QQ","家庭住址"}; static DefaultTableModel model = new DefaultTableModel(PersonInfo,head); static JTable table=new JTable(model); //****************************初始化主窗口******************************* public Interface() { setLayout(null); wj.add(barbc); wj.addSeparator(); wj.add(barlj); wj.addSeparator(); wj.add(barcz); wj.addSeparator(); wj.add(bartc); bj.add(bartj); bj.add(barsc); bj.addSeparator(); bj.add(barpx); barpx.add(barpxid); barpx.add(barpxxm); bz.add(barsy); bz.addSeparator(); bz.add(bargy); bar.add(wj); bar.add(bj); bar.add(bz); this.setJMenuBar(bar); txl.setForeground(Color.BLUE); this.add(txl); txl.setFont(new Font("华文彩云",Font.BOLD,30)); txl.setBounds(new Rectangle(180,10,350,40)); //**************************添加网格****************************** table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); table.setGridColor(Color.CYAN); table.setSelectionBackground(Color.YELLOW); table.setForeground(Color.RED); JScrollPane jsp=new JScrollPane(table); jsp.setBounds(new Rectangle(45,60,500,405)); this.add(jsp);
Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释执行命令的使用10 1.2.5UltraEdit的使用11 1.3一个简单的Java应用程序14 1.4一个简单的Java小程序16 1.5本章小结18 第2章Java语言基础19 2.1Java语言的特点19 2.2Java程序的构成21 2.3数据类 型23 2.3.1基本数据类型23 2.3.2常量25 2.3.3变量26 2.3.4整型数据27 .2.3.5浮点型数据29 2.3.6字符型数据30 2.3.7布尔型数据32 2.3.8变量赋初值33 2.3.9变量的作用域34 2.3.10数据类型转换34 2.4运算符与表达式37 2.4.1算术运算符和算术表达式38 2.4.2关系运算符和关系表达式43 2.4.3逻辑运算符和逻辑表达式44 2.4.4条件运算符和条件表达式48 2.4.5位运算符和位运算表达式50 2.4.6赋值运算符和赋值表达式53 2.4.7表达式的求值顺序55 2.5流程控制语句58 2.5.1三种基本控制结构58 2.5.2表达式语句和空语句59 2.5.3块语句60 2.5.4if~else分支语句61 2.5.5多路分支switch~case语句69 2.5.6当型循环while语句71 2.5.7直到型循环do~while语句72 2.5.8当型循环for语句74 2.5.9循环的嵌套78 2.5.10跳转语句break80 2.5.11跳转语句continue82 2.6程序文本的风格84 2.6.1注释84 2.6.2程序的格式编排87 2.7基础语法实战演习88 2.7.1判断闰年88 2.7.2求最大公约数和最小公倍数89 2.7.3Fibonacci数列90 2.7.4逆向输出数字91 2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本特征101 3.2类与对象104 3.2.1类的基本结构104 3.2.2类的声明104 3.2.3创建类体105 3.2.4对象的生命周期106 3.2.5对象的创建106 3.2.6对象的使用108 3.2.7对象的释放和垃圾收集机制108 3.3成员变量的定义与使用109 3.3.1成员变量的定义109 3.3.2成员变量的访问权限110 3.3.3实例成员变量和静态成员变量114 3.4方法的定义和实现116 3.4.1方法的声明117 3.4.2创建方法体与return语句117 3.4.3局部变量和成员变量的区别119 3.4.4方法的访问权限121 3.5方法的调用121 3.5.1方法调用的形式121 3.5.2方法调用的参数123 3.5.3隐含参数this127 3.6构造方法128 3.6.1无参数构造方法的定义和使用129 3.6.2带参数构造方法的定义和使用131 3.6.3this关键字和构造方法的调用132 3.7静态方法133 3.7.1静态方法的声明和定义134 3.7.2静态方法和实例方法的区别134 3.7.3静态代码块136 3.7.4再论静态成员变量137 3.8main()方法和命令行参数139 3.9结束方法141 3.10本地方法141 3.11本章小结144 第4章继承与多态145 4.1继承的基本原理145 4.2子类对父类的继承146 4.3属性隐藏和方法的覆盖148 4.3.1属性的隐藏148 4.3.2方法的覆盖151 4.4构造方法的继承154 4.5super的使用156 4.5.1用super引用父类的成员156 4.5.2使用super调用父类的构造方法157 4.6继承的内部处理158 4.7多态的基本概念159 4.8重载159 4.8.1普通方法的重载160 4.8.2构造方法的重载161 4.8.3重载的解析163 4.8.4重载与覆盖的区别165 4.9运行时多态165 4.9.1实例方法的运行时多态165 4.9.2成员变量运行时的表现167 4.9.3静态方法运行时

62,614

社区成员

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

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