为什么java分割条移动后面板的控件桌面图标消失了了

关于JAVA 分割面板的问题_百度知道
关于JAVA 分割面板的问题
public class ServerManageFace extends JFrame{
private JPanel jPanel1; private JSplitPane jSpilitPane1; private JScrollPane jScrollPane1; private JTable jTable1; private JSplitPane jSpilitPane2; private JSplitPane jSpilitPane3;ServerManageFace() {
guiinit();
} public void guiinit() {
this.setSize(700, 700);
jPanel1=new JPanel();
jPanel1.setLayout(new BorderLayout());
String Columnames[]={&账号&,&姓名&,&性别&,&年龄&,&在线状态&};
Vector&String& tablename=new Vector&String&();
for(int i=0;i&Columnames.i++)
tablename.add(Columnames[i]);
Vector &Vector&String&&tablevalue=new Vector&Vector&String&&();
Vector&String& tablevalue1=new Vector&String&();
tablevalue1.add(&123&);
Vector&String& tablevalue2=new Vector&String&();
tablevalue2.add(&123&);
Vector&String& tablevalue3=new Vector&String&();
tablevalue3.add(&123&);
Vector&String& tablevalue4=new Vector&String&();
tablevalue4.add(&123&);
Vector&String& tablevalue5=new Vector&String&();
tablevalue5.add(&123&);
tablevalue.add(tablevalue1);tablevalue.add(tablevalue2);tablevalue.add(tablevalue3);
tablevalue.add(tablevalue4);tablevalue.add(tablevalue5);
this.setLayout(new BorderLayout());
this.add(jPanel1,BorderLayout.CENTER);
jSpilitPane1=new JSplitPane(JSplitPane.VERTICAL_SPLIT);
jPanel1.add(jSpilitPane1, BorderLayout.NORTH);
jSpilitPane2=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
jSpilitPane1.setBottomComponent(jSpilitPane2);
jSpilitPane3=new JSplitPane(JSplitPane.VERTICAL_SPLIT);
jSpilitPane2.setLeftComponent(jSpilitPane3);
jScrollPane1=new JScrollPane();
jSpilitPane1.setTopComponent(jScrollPane1);
jScrollPane1.setPreferredSize(new java.awt.Dimension(690, 247));
jTable1=new JTable(tablevalue,tablename);
jScrollPane1.add(jTable1);
jSpilitPane1.setDividerLocation(350);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public JPanel getJPanel1() {
return jPanel1; }}我的代码,不知道为什么,我已先设置设置水平分割就出问题,先设置垂直分割就没事。谁帮我看看我究竟出了什么问题。。
JTextArea txaDisplay = new JTextArea(); JScrollPane scroll = new JScrollPane(txaDisplay);再问下,我如果这样写 滚动条能出来吗??我这么写滚动条出不来。。
提问者采纳
经过测试可以。package com.import java.awt.BorderLimport java.util.Vimport javax.swing.JFimport javax.swing.JPimport javax.swing.JScrollPimport javax.swing.JSplitPimport javax.swing.JTpublic class ServerManageFace extends JFrame { private JPanel jPanel1; private JSplitPane jSpilitPane1; private JScrollPane jScrollPane1; private JTable jTable1; private JSplitPane jSpilitPane2; private JSplitPane jSpilitPane3; ServerManageFace() {
guiinit(); } public void guiinit() {
this.setSize(700, 700);
jPanel1 = new JPanel();
jPanel1.setLayout(new BorderLayout());
String Columnames[] = { &账号&, &姓名&, &性别&, &年龄&, &在线状态& };
Vector&String& tablename = new Vector&String&();
for (int i = 0; i & Columnames. i++) {
tablename.add(Columnames[i]);
Vector&Vector&String&& tablevalue = new Vector&Vector&String&&();
Vector&String& tablevalue1 = new Vector&String&();
tablevalue1.add(&123&);
Vector&String& tablevalue2 = new Vector&String&();
tablevalue2.add(&123&);
Vector&String& tablevalue3 = new Vector&String&();
tablevalue3.add(&123&);
Vector&String& tablevalue4 = new Vector&String&();
tablevalue4.add(&123&);
Vector&String& tablevalue5 = new Vector&String&();
tablevalue5.add(&123&);
tablevalue.add(tablevalue1);
tablevalue.add(tablevalue2);
tablevalue.add(tablevalue3);
tablevalue.add(tablevalue4);
tablevalue.add(tablevalue5);jSpilitPane1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
jSpilitPane2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
jSpilitPane1.add(jSpilitPane2);
jSpilitPane1.add(new JPanel()); // 这边多加了个面板或其他的组件
jSpilitPane3 = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
jSpilitPane2.add(jSpilitPane3);
jSpilitPane2.add(new JPanel()); // 这边也多加了个面板或其他的组件
jScrollPane1 = new JScrollPane(jSpilitPane1);
jScrollPane1.setPreferredSize(new java.awt.Dimension(690, 247));
jTable1 = new JTable(tablevalue, tablename);
jScrollPane1.add(jTable1);
jSpilitPane1.setDividerLocation(350);jPanel1.setLayout(new BorderLayout());
jPanel1.add(jScrollPane1, BorderLayout.NORTH);
this.getContentPane().add(jPanel1);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public JPanel getJPanel1() {
return jPanel1; } public static void main(String[] args) {
new ServerManageFace(); }}原因是你分割一边有东西一边没有,所以不能移动分割线。
提问者评价
好了好了,谢谢,终于做完了。
其他类似问题
java的相关知识
其他2条回答
你写的代码问题很多,如果你想问地是为什么没有显示表格。JScrollPane的add方法被废弃,无效的,用:jScrollPane1.setViewportView(jTable1);
swing比较少用!
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁503 Service Temporarily Unavailable
503 Service Temporarily Unavailable
ASERVER/1.2.9-3当前位置:&&
本页文章导读:
&&&&?关于子网划分—为什么全0全1子网号不能使用&&&&&&子网划分并没有节约IP地址,实际导致可分配的IP地址数目减少。
证明:比如一个C类地址,不进行子网划分,实际可分配IP地址为254个。
现进行子网划分,假设借用2位主机号作为子网号,
那......&&&&?Java 源代码 计算出拼音的声调字母是哪个&&&&&&import java.io.*;//导入操作要用到的类
public class main {
public static void main(String args[]) {
File file = new File(&c:/test.txt&);// 源文件位置
fr = new FileReader(file);
BufferedReader in = new Buffe......&&&&?PipedInputStream类 和 PipedOutputStream类 的简单介绍和代码演示&&&&&&PipedOutputStream类 和PipedInputStream 类为管道输出流 和管道输入流。通常都是以管道输出流作为管道的起始端,通常管道输出流和管道输入流通过connect方法连接起来,实现数据从管道输出流 流入 ......
&&&&&&最新IT科技资讯推荐:
[1]关于子网划分—为什么全0全1子网号不能使用
&&&&来源:&
& 发布时间:&
子网划分并没有节约IP地址,实际导致可分配的IP地址数目减少。
证明:比如一个C类地址,不进行子网划分,实际可分配IP地址为254个。
现进行子网划分,假设借用2位主机号作为子网号,
那么现在产生的子网为01和10(全0全1子网号去掉),每个子网的主机号为6位,则每个子网可分配的IP地址为2的6次方剪掉2,即62台,
那么两个子网可分配的IP共62*2=124个,
那么减少的IP数目为:254-124=130个。
从上数据可以看出,减少了约一半的IP地址。既然这么浪费IP地址,为何我们还要使用子网划分呢?我个人认为,这是利用子网来方便管理网络的一种措施。
很容易看出,减少这么多IP地址的主要原因是子网号为00(全0)和11(全1)的两个子网去掉了,那为何要去掉“全0全1”的子网号呢?
不应该使用全0全1子网这个规定是源于RFC950标准,但后来RFC950在RFC1878中被废止了。
看看RFC950提到的原因:
假设我们有一个网络:192.168.0.0/24,我们现在需要两个子网,那么按照RFC950,应该使用/26而不是/25,得到两个可以使用的子网192.168.0.64和192.168.0.128
对于192.168.0.0/24,网络地址是192.168.0.0,广播地址是192.168.0.255
对于192.168.0.0/26,网络地址是192.168.0.0,广播地址是192.168.0.63
对于192.168.0.64/26,网络地址是192.168.0.64,广播地址是192.168.0.127
对于192.168.0.128/26,网络地址是192.168.0.128,广播地址是192.168.0.191
对于192.168.0.192/26,网络地址是192.168.0.192,广播地址是192.168.0.255
你可以看出来,对于第一个子网,网络地址和主网络的网络地址是重叠的,对于最后一个子网,广播地址和主网络的广播地址也是重叠的。这样的重叠将导致极大的混乱。比如,一个发往192.168.0.255的广播是发给主网络的还是子网的?这就是为什么在当时不建议使用全0和全1子网。
然而,人们认识到子网划分的IP地址浪费严重,后来IETF就研究出了其他一些技术,比如可变长子网掩码VLSM,该技术是在子网上进一步划分子网,可提高IP地址资源的利用率;后来在此基础上研究出了无类别域间路由CIDR,即消除了传统的A/B/C等分类以及划分子网,才是采用网络前缀和主机号的方式来分配IP地址,这使得IP地址的利用率更好。这两者的具体技术暂时不阐述。
就目前来说,现在可以使用全0和全1子网。但我们现在学习时,还强调子网划分时要去掉全0全1,这是何道理呢?我个人认为:
(1)目前有些网络建设较早,设备也不更新,老设备可能不支持CIDR,那么也就不支持全0全1的子网了。
(2)我们建企业网(单位网络)时,一般是使用私有地址来分配内部主机,小企业使用C类的192.168.0.0网络,中型企业使用172.16.0.0(私有部分)网络,如果还不够用,还有10.0.0.0网络。
既然私有地址如此丰富,为何不去掉全0全1的子网呢?因为真要使用全0全1的子网,还需要在路由器上进行一些特殊的配置。
那么怎样区分192.168.10.0到底是哪个网络的网络地址呢?
答案是:把子网掩码加上去!
192.168.10.0 255.255.255.0 是大C的网络地址,192.168.10.0 255.255.255.224 是第一个子网的网络地址,192.168.10.255 255.255.255.0是大C的广播地址,192.168.10.255 255.255.255.224是最后一个子网的广播地址。带上掩码,它们的二意性就不存在了。
所以,在严格按照TCP/IP ABCD给IP地址分类的环境下,为了避免二意性,全0和全1网段都不让使用。这种环境我们叫作Classful。在这种环境下,子网掩码只在所定义的路由器内有效,掩码信息到不了其它路由器,比如RIP-1,它在做路由广播时根本不带掩码信息,收到路由广播的路由器因为无从知道这个网络的掩码,只好照标准TCP/IP的定义赋予它一个掩码。比如,拿到10.X.X.X,就认为它是A类,掩码是255.0.0.0;拿到一个204.X.X.X,就认为它是C类,掩码是255.255.255.0。
但在Classless的环境下,掩码任何时候都和IP地址成对地出现,这样,前面谈到的二意性就不会存在,是Classful还是Classless取决于你在路由器上运行的路由协议,一个路由器上可同时运行Classful和Classless的路由协议。RIP是 Classful,它在做路由广播时不带掩码信息;OSPF,EIGRP,BGP4是Classless的,它们在做路由广播时带掩码信息,它们可以同时运行在同一台路由器上。
在Cisco路由器上,缺省你可以使用全1网段,但不能使用全0网段。所以,当在Cisco路由器上给端口定义IP地址时,该IP地址不能落在全0网段上。如果你配了,你会得到一条错误信息。使用IP SUBNET-ZERO命令之后,你才能使用全0网段。
要强调的是,使用了IP SUBNET-ZERO命令之后,如果路由协议使用的是Classful的(比如RIP),虽然你的定义成功了,但那个子网掩码还是不会被RIP带到它的路由更新报文中。即,IP SUBNET-ZERO 命令不会左右路由协议的工作。
总之,TCP/IP协议中,全0和全1网段因为具有二意性而不能被使用。Cisco 缺省使全1网段可以被使用,但全0网段只有在配置了IP SUBNET-ZERO后方可被使用
已有 0 人发表留言,猛击-&&这里&&-参与讨论
—软件人才免语言低担保 赴美带薪读研!—
[2]Java 源代码 计算出拼音的声调字母是哪个
&&&&来源:&互联网& 发布时间:&
import java.io.*;//导入操作要用到的类
public class main {
public static void main(String args[]) {
File file = new File(&c:/test.txt&);// 源文件位置
fr = new FileReader(file);
BufferedReader in = new BufferedReader(fr);// 包装文件输入流,可整行读取
while ((line = in.readLine()) != null) {
String a = pinyin(line);
int shengdiaoLetter = Integer.parseInt(a.substring(
a.length() - 1, a.length()));
a = a.substring(0, a.length() - 1) + & &
+ a.substring(shengdiaoLetter, shengdiaoLetter + 1);
System.out.println(a);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 创建文件输入流
private static String pinyin(String input) {
int position = 0;
int onlyaeiou = 0;
input = input.toLowerCase();
// 单个韵母不必说。 (单个的韵母,当然就标它上面了)
if (input.contains(&a&)) {
onlyaeiou++;
if (input.contains(&e&)) {
onlyaeiou++;
if (input.contains(&i&)) {
onlyaeiou++;
if (input.contains(&o&)) {
onlyaeiou++;
if (input.contains(&u&)) {
onlyaeiou++;
if (input.contains(&v&)) {
onlyaeiou++;
if (onlyaeiou == 1) {
if (input.contains(&a&)) {
position = input.indexOf(&a&);
if (input.contains(&e&)) {
position = input.indexOf(&e&);
if (input.contains(&i&)) {
position = input.indexOf(&i&);
if (input.contains(&o&)) {
position = input.indexOf(&o&);
if (input.contains(&u&)) {
position = input.indexOf(&u&);
if (input.contains(&v&)) {
position = input.indexOf(&v&);
return input +
if (input.contains(&a&)) {
position = input.indexOf(&a&);
return input +
// 没有a母找o e ,
else if (input.contains(&o&)) {
position = input.indexOf(&o&);
return input +
} else if (input.contains(&e&)) {
position = input.indexOf(&e&);
return input +
// iu 并列标在后,
if (input.contains(&iu&)) {
position = input.indexOf(&iu&) + 1;
return input +
if (input.contains(&a&)) {
position = input.indexOf(&a&);
return input +
if (input.contains(&e&)) {
position = input.indexOf(&e&);
return input +
if (input.contains(&i&)) {
position = input.indexOf(&i&);
return input +
if (input.contains(&o&)) {
position = input.indexOf(&o&);
return input +
if (input.contains(&u&)) {
position = input.indexOf(&u&);
return input +
if (input.contains(&v&)) {
position = input.indexOf(&v&);
return input +
作者:hycmanson 发表于 0:35:31 原文链接
阅读:0 评论:0 查看评论
[3]PipedInputStream类 和 PipedOutputStream类 的简单介绍和代码演示
&&&&来源:&互联网& 发布时间:&
PipedOutputStream类 和PipedInputStream 类为管道输出流 和管道输入流。通常都是以管道输出流作为管道的起始端,通常管道输出流和管道输入流通过connect方法连接起来,实现数据从管道输出流 流入 管道输入流中。管道输出流提供管道输入流的所有字节。通常都是
PipedOutputStream类介绍:
构造方法:PipedOutputStream();//创建一个尚未连接到管道输入流的管道输出流。
&&&&&&&&&&&&&&&&& PipedOutputStream(pipedInputStream in);//创建一个连接到该管道输入流的管道输出流。
主要方法。void write(int b);//将指定 byte 写入传送的输出流。
&&&&&&&&&&&&&&&&& void write(byte[] buf);//将该字符数组写入到管道输出流。
&&&&&&&&&&&&&&&&& void close();
&&&&&&&&&&&&&&&&&&void connect(PipedInputStream in);使此管道输出流连接到管道输入流 in。
PipedInputStream类介绍:
构造方法:PipedInputStream();//创建一个尚未连接到管道输出流的管道输入流。
&&&&&&&&&&&&&&&&&&& PipedInputStream(PipedOutputStream in);//创建一个连接到该管道输出入流的管道输入流。
主要方法:int read(byte[] b,int off,int len);//将最多
len 个数据字节从此管道输入流读入 byte 数组
&&&&&&&&&&&&&&&&&
void connect(PipedOutputStream out);//使此管道输入流连接到管道输出流
代码演示:
package PipedD
import java.io.IOE
import java.io.PipedInputS
import java.io.PipedOutputS
public class PipedDemo {
* @param args
* @throws IOException
public static void main(String[] args) throws IOException {
PipedInputStream in = new PipedInputStream();
PipedOutputStream out = new PipedOutputStream();
in.connect(out);
new Thread(new Input(in)).start();
new Thread(new Output(out)).start();
class Input implements Runnable{
private PipedInputS
public Input(PipedInputStream in) {
public void run() {
byte []buf = new byte[1024];
len = in.read(buf);
String s = new String(buf,0,len);
System.out.println(&in &+s);
in.close();
} catch (IOException e) {
e.printStackTrace();
class Output implements Runnable{
public void run() {
out.write(&管道流。。。。&.getBytes());
} catch (IOException e) {
e.printStackTrace();
private PipedOutputS
public Output(PipedOutputStream out) {
this.out =
作者:liuhenghui5201 发表于 0:21:30 原文链接
阅读:28 评论:0 查看评论
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)JAVA中能否在一个Panel上添加监听器,以对该面板上的所有控件进行监听_百度知道
JAVA中能否在一个Panel上添加监听器,以对该面板上的所有控件进行监听
如果能应该用哪个监听器,如何设置?比如:对同一个面板上的十个按钮同时实施监听
提问者采纳
必须在按钮上添加监听器。
提问者评价
采纳率100%
其他类似问题
监听器的相关知识
按默认排序
其他1条回答
注册一个KeyListener 就行. 具体按下那个键对比KeyEvent
我是在一个panel上加了十六个button,我也加了一个KeyListener,但是按下button时,这个触发器的方法并没有被调到啊;后来我理解是不是这个KeyListener只是用来监听物理键盘用的啊?或者是不是我用错了啊,希望前辈予以指教!
KeyListener当然只是用来监听物理键盘的.....你想用它来监听你自己的jButton???
啊,就是啊,我一直就是想要监听jbutton
不能直接监听 但是可以通过其他的方法 jButton应该是按下按钮的时候触发事件 也就是执行对应的方法比如你写了一个计算机 有10个按钮 代表0-9 10个数字 按下对应的按钮就显示对应的数字 用KeyListener 的keyEvent 的getKeyChar() 这个方法就能得到你按的是那个键 比如0 就是e.getKeyChar() ==
这个就为真 . 说到这里你不可能不知道该怎么做了把
大神,我怎么还是不行啊。1、你是不是说在jButton上加KeyListener啊,如果直接在jButton上加我就直接加ActionListener不就行了!2、我主要是想知道可不可能在一个Panel上只添一个监听器来监听这个面板上的所有jButton3、我试了KeyEvent的方法,都是对物理键的监听啊,我按jButton还是什么效果也没有啊!多谢不吝赐教!
KeyListener 是不能监听的jButton的 我上边说的你看不明白???
jButton注册的ActionListener不是在按下这个按钮的时候就执行对应的代码??? 我的意思是 用KeyListener 的话的效果就像是在监听jButton一样但是实际不是那么回事
还是不行啊,我主要是想在一个Panel上添加一个监听器去一下子全部监听这个面板上的所有jButton,如果是去一个一个监听jButton,我大可用ActionListener;我试了用KeyListener的getKeyChar()等方法,接收到的还是物理键盘的动作啊!
根本没有你手的那种的东西.........
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 桌面图标消失了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信