【问题标题】:How to write in frame using JFrame?如何使用 JFrame 在框架中写入?
【发布时间】:2020-11-28 01:52:13
【问题描述】:

我是 Java 的初学者,我正在用书来学习,现在我在第一个 GUI 主题中,我遇到了一个问题。我不知道为什么,但我看不到我试图放入框架的文本,这是代码:

import java.awt.*;
import javax.swing.*;

public class Ramka  {

    public static void main(String[] args)
    {
        JFrame ramka = new JFrame();
        ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        ramka.setTitle("Frame");
        ramka.setVisible(true);
        Toolkit zestaw = Toolkit.getDefaultToolkit();
        Dimension rozmiar = zestaw.getScreenSize();
        int szerokosc = rozmiar.width;
        int wysokosc = rozmiar.height;
        ramka.setSize(szerokosc, wysokosc);
    }
}

class Ramkatekst extends JComponent{
    Toolkit zestaw = Toolkit.getDefaultToolkit();
    Dimension rozmiar = zestaw.getScreenSize();
    int szerokosc = rozmiar.width/2;
    int wysokosc = rozmiar.height/2;
    public void paintComponent(Graphics g)
    {
        g.drawString(" Sample text",szerokosc, wysokosc );
    }
}

【问题讨论】:

  • 您在示例中从不使用Ramkatekst(您只声明了这种类型,但从未使用过)。同样paintCompontent 应该调用它的super.paintComponent(g); 作为第一条指令。而且你永远不会让ramka 可见。要么该示例是故意简化的,而不是按原样运行,要么考虑换书...
  • 你学java的书叫什么名字?
  • Cay s。 Horstmann Cary Cornell Java 核心
  • 1) JFrame ramka = new JFrame(); & ramka.setTitle("Frame"); 这两行可以缩短为JFrame ramka = new JFrame("Frame"); 2) 之后 ramka.setVisible(true); 之后的所有内容都可以简化为ramk.setExtendedState(JFrame.MAXIMIZED_BOTH);跨度>
  • 谢谢 Andrew,但你能向我解释一下 setExetendedState 和 MAXIMIZED_BOTH 是如何工作的吗?

标签: java swing jframe awt


【解决方案1】:

正如@pshemo 所指出的,Ramkatekst 从未被使用过。您需要创建它的一个实例并将其添加到您的 JFrame “ramka”。因此,只需在 main 方法的末尾添加这一行:

    ramka.add(new Ramkatekst());

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-02-04
  • 2019-10-02
  • 2012-04-08
  • 1970-01-01
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多