JAVA中复选框组件的使用,以及JScrollPane面板的问题,请大家帮我看一下

/**Tochangethislicenseheader,chooseLicenseHeadersinProjectProperties.*Tochangethistem... /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package creatimageicon;import javax.swing.*;import java.awt.*;import java.awt.event.*;/** * * @author Meng */public class CheckBoxTest extends JFrame { CheckBoxTest() { Container c = getContentPane(); c.setLayout(null); JCheckBox box1 = new JCheckBox("1", true); JCheckBox box2 = new JCheckBox("2", false); JCheckBox box3 = new JCheckBox("3", true); JCheckBox box4 = new JCheckBox("4", false); final JTextArea ta = new JTextArea(70, 70); final JScrollPane SP = new JScrollPane(ta); JPanel p1 = new JPanel(new GridLayout(1, 4, 5, 5)); JPanel p2 = new JPanel(new GridLayout(4,1,5,5)); p2.add(SP); p1.add(box1); p1.add(box2); p1.add(box3); p1.add(box4); box1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ta.append("Correct!"); } }); c.add(p2, BorderLayout.NORTH); c.add(p1, BorderLayout.SOUTH); setSize(300, 300); c.setBackground(Color.pink); setDefaultCloseOperation(3); setVisible(true); }}真心不知道为什么出错,想做出来一个面板,分上下两部分,上面是个文本区域,下面是个多选区域,每次在下面选一个选项,文本区域相应会出现一句话。不知道我这code为什么没有东西出来啊求大家帮我改code啊
啊,少了一行
开头再加一个
c.setLayout(new BorderLayout());

哪位大神帮我解决了这个问题我可以再加20分给你啊
展开
 我来答
百度网友7cd29db
2014-02-16 · TA获得超过213个赞
知道小有建树答主
回答量:186
采纳率:66%
帮助的人:77.3万
展开全部

帮你代码格式调整了一下,之前的太难看了,然后错误有:

1、你LayOut设成空(null)了,所以你的组件显示不出来

2、你的文本框设置得太大了,盖住了整个屏幕,文本框初始化传入的参数不是大小,是显示的行数和列数

3、你只是添加了box1的选择响应动作,其他的都没添加。

以上我帮你你在代码中改正了1、2,然后3的问题就你可以直接搞定了吧?

写java的GUI程序最重要的细心,一点一点的调节各个组件的大小来适应你的显示需求。


以下是代码:


  import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CheckBoxTest extends JFrame {
   public CheckBoxTest() {
       Container c = getContentPane();
       c.setLayout(new BorderLayout());
       //c.setLayout(null);
       JCheckBox box1 = new JCheckBox("1", true);
       JCheckBox box2 = new JCheckBox("2", false);
       JCheckBox box3 = new JCheckBox("3", true);
       JCheckBox box4 = new JCheckBox("4", false);
       final JTextArea ta = new JTextArea();
       ta.setRows(15);
       final JScrollPane SP = new JScrollPane(ta);
       JPanel p1 = new JPanel(new GridLayout(1, 4, 5, 5));
       //JPanel p2 = new JPanel(new GridLayout(4, 1, 5, 5));
       //p2.add(SP);
       p1.add(box1);
       p1.add(box2);
       p1.add(box3);
       p1.add(box4);
       box1.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               ta.append("Correct!");
           }
       });
       c.add(SP, BorderLayout.NORTH);
       c.add(p1, BorderLayout.SOUTH);
       setSize(300, 300);
       c.setBackground(Color.pink);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setVisible(true);
   }

    public static void main(String...args){
        new CheckBoxTest();
    }
}
追问
我的layout先调成Null再赋予 borderlayout之类的是不可行的吗?
谢谢你啊 我在自学 不知道text那个是行列数。。。
追答
先设置成null,再设成其他的layout是可以的,不过你之前的代码中好像反过来了。
再说应该没有这样的必要吧,代码里面还是尽量不要有多余的代码,影响阅读~~~
louluan
2014-02-16
知道答主
回答量:20
采纳率:0%
帮助的人:15.1万
展开全部
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class CheckBoxTest extends JFrame {
 CheckBoxTest() {
  Container c = getContentPane();
  c.setLayout(new GridLayout(2, 1, 5, 5)); 
  JCheckBox box1 = new JCheckBox("1", true);
  JCheckBox box2 = new JCheckBox("2", false);
  JCheckBox box3 = new JCheckBox("3", true);
  JCheckBox box4 = new JCheckBox("4", false);
  final JTextArea ta = new JTextArea(70, 70);
  final JScrollPane SP = new JScrollPane(ta);
  JPanel p1 = new JPanel(new GridLayout(1, 4, 5, 5));
  p1.add(box1);
  p1.add(box2);
  p1.add(box3);
  p1.add(box4);
  box1.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
    ta.append("Correct!\n");
   }
  });
  c.add(SP);
  c.add(p1);
  setSize(300, 300);
  //c.setBackground(Color.pink);
  setDefaultCloseOperation(3);
  setVisible(true);
  //this.add(c);
 }
 
 public static void main(String[] args) {
  new CheckBoxTest();
 }
}

 

希望可以帮到你,呵呵!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式