iteye_14206 2009-02-11 18:31
浏览 328
已采纳

JTextField的size设置无效,如何解决?

下面是我的代码
[code="java"]
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Timer extends JFrame {
/**
*
*/
private static final long serialVersionUID = 7904947045842215550L;

private JComboBox hourBox;

private JTextField timerConsole = new JTextField("");

private int hour = 1;

private int sec;

private Font f = new Font("宋体", 0, 14);

private int width = 300;

private int height = 500;

public Timer() {

    setTitle("酒店房态定时更新器");
    setSize(width, height);

    Container contentPanel = getContentPane();

    JPanel timePanel = new JPanel();
    timePanel.setLayout(new GridLayout(4, 2));

    JLabel subLable = new JLabel("设置更新频率(单位/小时)");
    subLable.setFont(f);
    timePanel.add(subLable);
    hourBox = new JComboBox();
    timePanel.add(hourBox);
    for (int i = 1; i <= 24; i++) {
        hourBox.addItem(i);
    }
    hourBox.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
            hour = (((Integer) hourBox.getSelectedItem()).intValue());
        }
    });
    subLable.setFont(f);
    timerConsole.setSize(width, 800);
    timePanel.add(timerConsole);

    contentPanel.add(timePanel, BorderLayout.CENTER);

    JButton check = new JButton("开始");
    check.setFont(f);
    contentPanel.add(check, BorderLayout.SOUTH);
    check.addActionListener(new ActionListener() {
        public boolean stop = false;

        public void actionPerformed(ActionEvent evt) {
            JButton check = (JButton) evt.getSource();
            sec = hour * 60 * 60;
            Thread t = new Thread() {
                public void run() {
                    for (int i = 0; i < sec; i++) {
                        try {
                            if (stop) {
                                interrupt();
                            } else {
                                timerConsole.setText("已经过去" + i + "秒");
                                sleep(1000);
                            }
                        } catch (InterruptedException e) {
                        }
                    }
                }
            };
            if (check.getText().equals("开始")) {
                check.setText("停止");
                stop = false;
                t.start();
            } else {
                stop = true;
                check.setText("开始");
                timerConsole.setText("");
            }
        }
    });
}

}
[/code]

timerConsole.setSize(width, 800);这里设置的是无效的
如何才能让它设置有效?

  • 写回答

1条回答 默认 最新

  • wwwghost 2009-02-11 22:53
    关注

    timePanel没有设置LayoutManager。改改试试看!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)