package chess;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextField;class Sever extends JFrame implements ActionListener {
JButton b1,b2;
JLabel l;
JPanel p=new JPanel();
JTextField t;
JList list=new JList();
JScrollPane sp=new JScrollPane(list);
JSplitPane split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,sp,p);
public Sever() {
this.frame();
this.actionListener();
}
public void actionListener(){
this.b1.addActionListener(this);
this.b2.addActionListener(this);
}
public void frame() {
p.setLayout(null);
l=new JLabel("Socket");
l.setBounds(450, 100, 40, 20);
t=new JTextField();
t.setBounds(500, 100, 100, 20);
p.add(l);
p.add(t);
b1=new JButton("ON");
b2=new JButton("OFF");
b1.setBounds(450, 170, 60, 25);
b1.setEnabled(true);
p.add(b1);
b2.setBounds(540, 170, 60, 25);
b2.setEnabled(false);
p.add(b2);
split.setDividerLocation(350);
split.setDividerSize(0);
add(split);
setBounds(450, 200, 640, 360);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);

}

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==this.b1) {
b1.setEnabled(false);
b2.setEnabled(true);
System.out.println("ON");
}
else if(e.getSource()==this.b2) {
b2.setEnabled(false);
b1.setEnabled(true);
System.out.println("OFF");
}
}

}
public class Chess { public static void main(String[] args) {
new Sever(); }}

解决方案 »

  1.   

    你的主面板p没有被加到jframe的容器中getContentPane().add(p),当然就看不见所有东西了。
    剩下的代码自己调吧。import java.awt.Color;
    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.JList;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextField;class Sever extends JFrame implements ActionListener {
    JButton b1, b2;
    JLabel l;
    JPanel p = new JPanel();
    JTextField t;
    JList list = new JList();
    JScrollPane sp = new JScrollPane(list);
    JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, sp, p); public Sever() {
    this.frame();
    this.actionListener();
    } public void actionListener() {
    this.b1.addActionListener(this);
    this.b2.addActionListener(this);
    } public void frame() {
    p.setBorder(BorderFactory.createLineBorder(Color.red));
    this.getContentPane().add(p);
    p.setLayout(null);
    l = new JLabel("Socket");
    l.setBounds(450, 100, 40, 20);
    t = new JTextField();
    t.setBounds(500, 100, 100, 20);
    p.add(l);
    p.add(t);
    b1 = new JButton("ON");
    b2 = new JButton("OFF");
    b1.setBounds(450, 170, 60, 25);
    b1.setEnabled(true);
    p.add(b1);
    b2.setBounds(540, 170, 60, 25);
    b2.setEnabled(false);
    p.add(b2);
    split.setDividerLocation(350);
    split.setDividerSize(0);
    p.add(split);
    setBounds(450, 200, 640, 360);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false); } @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if (e.getSource() == this.b1) {
    b1.setEnabled(false);
    b2.setEnabled(true);
    System.out.println("ON");
    } else if (e.getSource() == this.b2) {
    b2.setEnabled(false);
    b1.setEnabled(true);
    System.out.println("OFF");
    }
    }}public class Chess { public static void main(String[] args) {
    new Sever(); }}