我的问题是有一个JSplitPane如下:
class abc extends JFrame{
.....
.....
Spane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, a, b);
Spane.setDividerSize(8);
Spane.setDividerLocation(211);
Spane.setOneTouchExpandable(true);
.....
.....
}
要求是写一个函数把Spane重画,把b换成c其它不变
这是我写的:
public void showBigImage() { //看大图的模式
// int k = Spane.getDividerLocation();
Spane.remove(b);
Spane.setRightComponent(c);
// Spane.setResizeWeight(0.7);
// Spane.setDividerLocation(k);
Spane.validate();
getContentPane().repaint();
}
但原来是看到a和b的,但单击后就只看到a,b c都不见了,还有那条分隔线都不见了
class abc extends JFrame{
.....
.....
Spane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, a, b);
Spane.setDividerSize(8);
Spane.setDividerLocation(211);
Spane.setOneTouchExpandable(true);
.....
.....
}
要求是写一个函数把Spane重画,把b换成c其它不变
这是我写的:
public void showBigImage() { //看大图的模式
// int k = Spane.getDividerLocation();
Spane.remove(b);
Spane.setRightComponent(c);
// Spane.setResizeWeight(0.7);
// Spane.setDividerLocation(k);
Spane.validate();
getContentPane().repaint();
}
但原来是看到a和b的,但单击后就只看到a,b c都不见了,还有那条分隔线都不见了
理论上来说代码是没有问题 可能有些较隐蔽的细节大家把握地不一样
或者有些不易察觉的第三方影响要素 先要你完成第一步才能进行下面的判断import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSplitPane;public class Test extends JFrame implements MouseListener{
JSplitPane spane;
JPanel a, b, c; public static void main(String[] args) {
new Test().go();
} public void go() {
JFrame jf = new JFrame();
a = new JPanel();
b = new JPanel();
c = new JPanel();
a.setBackground(Color.BLACK);
b.setBackground(Color.RED);
c.setBackground(Color.BLUE);
a.addMouseListener(this);
spane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, a, b);
spane.setDividerSize(8);
spane.setDividerLocation(211);
spane.setOneTouchExpandable(true);
jf.add(spane);
jf.setSize(400, 300);
jf.setVisible(true);
} public void showBigImage() {
// int k = Spane.getDividerLocation();
spane.remove(b);
spane.setRightComponent(c);
// Spane.setResizeWeight(0.7);
spane.setDividerSize(8);
spane.setDividerLocation(211);
spane.setOneTouchExpandable(true);
// Spane.setDividerLocation(k);
spane.validate();
getContentPane().repaint();
} public void mouseClicked(MouseEvent e) {
this.showBigImage();
} public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
} public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
} public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
} public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
是这个意思吗 有什么区别呢