佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1157|回复: 7

关于JAVA的问题,有望各位高手帮忙

[复制链接]
发表于 27-12-2010 05:09 PM | 显示全部楼层 |阅读模式
正在研究如何按了BUTTON,就ADD新的LABEL。不是SET LABEL哦。
我觉得好像很简单,但是就是一直做不出。

我做的TESTING

public class AddLabel extends JFrame{
    private JButton jb1 = new JButton("Add";
    private JPanel panel = new JPanel(new GridLayout(5, 10));
    private JScrollPane jsp = new JScrollPane(panel);

    public AddLabel(){


    add(jb1,BorderLayout.WEST);
    add(jsp,BorderLayout.CENTER);

        jb1.addActionListener(new ActionListener(){
            public void actionPerformed (ActionEvent e){
                if (e.getSource() == jb1){
                    System.out.println("hi";
                    panel.add(new JLabel("hi");

                }
            }

        });
    }


不知道是不是INNER CLASS ACTION的问题还是什么,继续研究去,希望到回来能有高手给给意见。
回复

使用道具 举报


ADVERTISEMENT

发表于 27-12-2010 05:36 PM | 显示全部楼层
加 validate() ?
错了别鸟我
回复

使用道具 举报

发表于 27-12-2010 05:43 PM | 显示全部楼层
回复 1# 梦祥.NGU
如果先把label添加进去,set as hidden。
然后按了button才show不是更容易吗?
回复

使用道具 举报

发表于 27-12-2010 05:52 PM | 显示全部楼层
其實我不是很明白你的問題... 不好意思...
不過我看到你的是JFrame, 你有 import javax.swing.*; 嗎?
而且有event你有 import.java.awt.*; import.java.awt.event.*; 嗎?
再説, 你的code沒有main的... run到咩?
還有你沒有setVisible(true)的話那個JFrame是不會show出來的。

希望可以幫到你...
回复

使用道具 举报

 楼主| 发表于 27-12-2010 06:53 PM | 显示全部楼层
回复  梦祥.NGU
如果先把label添加进去,set as hidden。
然后按了button才show不是更容易吗?
shaxiashaxia 发表于 27-12-2010 05:43 PM


那不就跟SET LABEL一樣了?如果我要ADD 50個LABEL, 我不就需要DECLARE 50個LABEL嗎? 我是想說要ADD多ADD少都可以.
回复

使用道具 举报

 楼主| 发表于 27-12-2010 06:57 PM | 显示全部楼层
本帖最后由 梦祥.NGU 于 27-12-2010 06:58 PM 编辑
加 validate() ?
错了别鸟我
loonloon0625 发表于 27-12-2010 05:36 PM


恩。。我不明白你的意思..

其實我不是很明白你的問題... 不好意思...
不過我看到你的是JFrame, 你有 import javax.swing.*; 嗎? ...
Jason929 发表于 27-12-2010 05:52 PM


恩,那些我都有IMPORT
我只是把MAIN CODE COPY出来而已

我的問題不是RUN不到,
我是想寫個FUNCTION, 是當你PRESS ADD BUTTON的時候, 它會自己ADD New Label進去一個PANEL or Frame



PS.谢谢各位的热心意见
回复

使用道具 举报

Follow Us
发表于 27-12-2010 07:26 PM | 显示全部楼层
add 了 label后,你有叫过draw吗?
回复

使用道具 举报

发表于 27-12-2010 07:59 PM | 显示全部楼层
恩。。我不明白你的意思..



恩,那些我都有IMPORT
我只是把MAIN CODE COPY出来而已
...
梦祥.NGU 发表于 27-12-2010 06:57 PM



label 只是 text 罷了... 你要 add 那麽多 label 直接 add 完它啦... 那麽麻煩

  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;

  4. public class AddLabel extends JFrame
  5. {
  6.    private JPanel panel;
  7.    private JLabel label;
  8.    private JButton button;

  9.    private final int WINDOW_WIDTH = 300;
  10.    private final int WINDOW_HEIGHT = 150;


  11.    public AddLabel()
  12.    {
  13.       setTitle("Add Label");
  14.       setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
  15.       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16.       setLayout(new BorderLayout());

  17.       buildPanel();

  18.       add(panel);
  19.       add(button, BorderLayout.WEST);

  20.       setVisible(true);
  21.    }

  22.    public static void main(String[] args)
  23.    {
  24.       AddLabel al = new AddLabel();
  25.    }

  26.    private void buildPanel()
  27.    {
  28.       label = new JLabel();

  29.       panel = new JPanel();

  30.       button = new JButton("ADD");
  31.       button.addActionListener(new ActionListener()
  32.       {
  33.          public void actionPerformed(ActionEvent e)
  34.          {
  35.             if (e.getSource() == button)
  36.             {
  37.                panel.add(new JLabel("Hi!"));
  38.             }
  39.          }
  40.       });
  41.    }
  42. }
复制代码
你按 "ADD" 就可以add Label, 但是它不會即刻show出來...
你要拉一下window的邊框, 調整一下, 它的label就會show出來了。
不知道是不是你要的東西...
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 15-11-2025 08:08 AM , Processed in 0.143222 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表