import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class PhoneDemo {
private JFrame frame;
private JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,
b13,b14,b15;
private JTextArea ta;
public  static void main(String args[]) {
PhoneDemo that=new PhoneDemo();
that.go();
}
public void go() {
frame=new JFrame("仿手机拨号界面学习");
Container contentPane=frame.getContentPane();
b1=new JButton("1");
b2=new JButton("2");
b3=new JButton("3");
b4=new JButton("4");
b5=new JButton("5");
b6=new JButton("6");
b7=new JButton("7");
b8=new JButton("8");
b9=new JButton("9");
b10=new JButton("*");
b11=new JButton("0");
b12=new JButton("#");
b13=new JButton("清空");
b14=new JButton("Space");
b15=new JButton("确认");

JLabel label=new JLabel();
label.setLayout(new GridLayout(5,3));
label.add(b1);label.add(b2);label.add(b3);label.add(b4);label.add(b5);label.add(b6);label.add(b7);
label.add(b8);label.add(b9);label.add(b10);label.add(b11);label.add(b11);label.add(b12);
label.add(b13);label.add(b14);label.add(b15);

contentPane.setLayout(new GridLayout(2,1));
contentPane.add(label);

ta=new JTextArea(6,6);

Border etched=BorderFactory.createEtchedBorder();
Border border=BorderFactory.createTitledBorder(etched,"X");
label.setBorder(border);
Border border1=BorderFactory.createTitledBorder(etched,"B");
ta.setBorder(border1);
ta.setBackground(Color.PINK);
JScrollPane jsp=new JScrollPane(ta,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
contentPane.add(jsp);

ActionListener al=new ActionListener() {
public void actionPerformed(ActionEvent e) {
JButton jb=(JButton)e.getSource();
if(jb==b1) {
ta.append("b1.isSelected()");
}else if(jb==b2) {
ta.append("b2.isSelected()");
}
}
};

b1.addActionListener(al);
b2.addActionListener(al);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500,430);
frame.setVisible(true);

}
}

解决方案 »

  1.   


    // 帮你改了一下代码 你这Swing些的不敢恭维 得加油学习
    class PhoneDemo extends JFrame implements ActionListener{
        private JButton [] jbAry = {new JButton("1"),new JButton("2"),new JButton("3"),
         new JButton("4"),new JButton("5"),new JButton("6"),
         new JButton("7"),new JButton("8"),new JButton("9"),
         new JButton("*"),new JButton("0"),new JButton("#"),
         new JButton("清空"),new JButton("Space"),new JButton("确认"),
         };
        private JTextArea ta = new JTextArea(6,6);;
        private JLabel jl = new JLabel();
        private JScrollPane jsp=new JScrollPane(ta,
                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        
        private String strContent;
        private StringBuilder sb = new StringBuilder();    public void go() {
            this.setTitle("仿手机拨号界面学习");
            Container contentPane=this.getContentPane();
            this.ta.setEditable(false);
            jl.setLayout(new GridLayout(5,3));
            for(int i=0; i<jbAry.length; i++){
             this.jl.add(this.jbAry[i]);
             this.jbAry[i].addActionListener(this);
            }
            
            contentPane.setLayout(new GridLayout(2,1));
            contentPane.add(jl);
            
            Border etched=BorderFactory.createEtchedBorder();
            Border border=BorderFactory.createTitledBorder(etched,"X");
            jl.setBorder(border);
            Border border1=BorderFactory.createTitledBorder(etched,"B");
            ta.setBorder(border1);
            ta.setBackground(Color.PINK);        contentPane.add(jsp);
            
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(500,430);
            
            this.setVisible(true);
        }
        
    @Override
    public void actionPerformed(ActionEvent e) {
    String str = ((JButton)e.getSource()).getText().trim();
    if(str.length() == 1){
    sb.append(str);
    this.strContent = sb.toString();
    this.ta.setText("");
    this.ta.setText(this.strContent);
    }
    else if("清空".equals(str)){
    this.ta.setText("");
    this.sb.delete(0, sb.length());
    }
    else if("Space".equals(str)){
    sb.append(" ");
    this.strContent = sb.toString();
    this.ta.setText("");
    this.ta.setText(this.strContent);
    }
    else if("确认".equals(str)){
    this.ta.setText("");
    this.sb.delete(0, sb.length());
    this.ta.setText("拨打" + this.strContent);
    }

    }

        public  static void test() { // 测试函数 
            PhoneDemo that=new PhoneDemo();
            that.go();
        }
    }