在用以下代码做关于JSplitPane的实验时,此实验的内容大致是这样设想的:在JFrame中有一JPanel,而在JPanel上我加了两个JLabel,现在我想通过点击JFrame上的按钮把JPanel上的两个JLabel分别放到JSplitPane的左右一边一个。可这个预想的效果根本就没有实现,这个怎么回事呢??急!急!急!急!!package trySplitePane;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
public class TrySplitePane { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new TrySplite().setVisible(true);
}}class TrySplite extends JFrame{
TrySplite(){
setTitle("TrySplite");
//c.setLayout(new FlowLayout());
p.add(label1);
label1.setBorder( BorderFactory.createTitledBorder("Label A"));
p.add(label2);
label2.setBorder( BorderFactory.createTitledBorder("Label B"));
label1.setPreferredSize(new Dimension(250,400));
label2.setPreferredSize(new Dimension(250,400));
c.add(p);
c.add(btn,BorderLayout.SOUTH);
btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("Button ok! before");
tryS();
System.out.println("Button ok! after");
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(250,200,600,500);
}
void tryS(){
JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,label1, label2);
split.setDividerSize(8);
p.add(split);
}
private JLabel label1 = new JLabel(),
label2= new JLabel();
private JButton btn = new JButton("Splite");
JPanel p = new JPanel();
Container c = getContentPane();
}先谢谢高手们!!
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
public class TrySplitePane { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new TrySplite().setVisible(true);
}}class TrySplite extends JFrame{
TrySplite(){
setTitle("TrySplite");
//c.setLayout(new FlowLayout());
p.add(label1);
label1.setBorder( BorderFactory.createTitledBorder("Label A"));
p.add(label2);
label2.setBorder( BorderFactory.createTitledBorder("Label B"));
label1.setPreferredSize(new Dimension(250,400));
label2.setPreferredSize(new Dimension(250,400));
c.add(p);
c.add(btn,BorderLayout.SOUTH);
btn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("Button ok! before");
tryS();
System.out.println("Button ok! after");
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(250,200,600,500);
}
void tryS(){
JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,label1, label2);
split.setDividerSize(8);
p.add(split);
}
private JLabel label1 = new JLabel(),
label2= new JLabel();
private JButton btn = new JButton("Splite");
JPanel p = new JPanel();
Container c = getContentPane();
}先谢谢高手们!!
package trySplitePane;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
public class TrySplitePane {/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new TrySplite().setVisible(true);
}}class TrySplite extends JFrame{
TrySplite(){
setTitle("TrySplite");
//c.setLayout(new FlowLayout());
p.add(label1);
label1.setBorder( BorderFactory.createTitledBorder("Label A"));
p.add(label2);
label2.setBorder( BorderFactory.createTitledBorder("Label B"));
label1.setPreferredSize(new Dimension(250,400));
label2.setPreferredSize(new Dimension(250,400));c.add(p);
c.add(btn,BorderLayout.SOUTH);
btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("Button ok! before");
tryS();
p.validate();------------------------------------>只加了这一句.
System.out.println("Button ok! after");
}});setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(250,200,600,500);
}
void tryS(){JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,label1, label2);
split.setDividerSize(8);p.add(split);
}private JLabel label1 = new JLabel(),
label2= new JLabel();
private JButton btn = new JButton("Splite");
JPanel p = new JPanel();
Container c = getContentPane();
}