java小程序按钮

java小程序按钮,java,swing,applet,Java,Swing,Applet,好的,我有这样一个小程序 BorderLayout.CENTER-(其中是JPanel) BorderLayout.EAST-(其中有一个新的GridLayout(4,5) BorderLayout.SOUTH-(此区域内为文本区域) 无论如何,在applet上,我必须将鼠标悬停在按钮上才能看到它们。我想它们不会在那里绘制,但我将它们添加到init()方法中…所以我不知道我做错了什么,为什么它会这样做 setLayout( new BorderLayout() ); JPanel invOn

好的,我有这样一个小程序

  • BorderLayout.CENTER-(其中是JPanel)
  • BorderLayout.EAST-(其中有一个新的GridLayout(4,5)
  • BorderLayout.SOUTH-(此区域内为文本区域)
无论如何,在applet上,我必须将鼠标悬停在按钮上才能看到它们。我想它们不会在那里绘制,但我将它们添加到init()方法中…所以我不知道我做错了什么,为什么它会这样做

setLayout( new BorderLayout() );
JPanel invOne = new JPanel(new GridLayout(5,4));
JPanel game = new JPanel();
add(invOne, BorderLayout.EAST);
add(game, BorderLayout.CENTER);
add(c, BorderLayout.SOUTH);

invOne.setBounds(416,0, 60, 28);

for (int i = 0,  j = 20;  i < 20;  i = i+1, j = j-1)  {
   invOne.add(new JButton("SLOT " + j));
   invOne.setBounds(32,32,100,100);
   invOne.setFocusable(false);
}

game.setBounds(0,0, 416, 288);
repaint();
setLayout(新的BorderLayout());
JPanel invOne=新JPanel(新网格布局(5,4));
JPanel游戏=新JPanel();
添加(发票,BorderLayout.EAST);
添加(游戏、边界布局、中心);
增加(c,南部边界布局);
涉及挫折(416,0,60,28);
对于(int i=0,j=20;i<20;i=i+1,j=j-1){
发票添加(新的JButton(“插槽”+j));
发票立根数(32,32100100);;
invOne.setFocusable(false);
}
游戏.挫折(0,0416288);
重新油漆();

在面板中添加所有组件后,是否明确调用“pack()”(或“repaint()”)方法?
不调用这些方法可能会在您的帧中导致图形问题…

所有
setBounds()
调用都试图实现什么?或者让
pack()完成
根据面板的内部设置面板的大小,或者只设置一次面板所在位置的边界。尤其是32x32像素大小的呼叫根本没有帮助


编辑:

我发现这些问题:

  • 正如另一张海报所提到的,您正在混合Swing和AWT组件。这不太好。基本上,如果您使用的一些组件在开始时有一个“J”,您将希望所有组件都使用“J”。AWT现在被认为是“老派”。这有点令人困惑,因为GUI中使用的某些类和组件没有J。我想您需要仔细使用好的示例或查找类

  • 出于某种原因,小程序不想正常工作,直到我给TextArea(现在称为JTextArea)提供了明确的行/列计数。我将
    newtextarea()
    更改为
    newjtextarea(3,20)

  • 最大的问题可能是空的
    paint()
    方法。我不知道小程序如何显示任何内容?您可以删除
    paint()
    方法;我通过调用
    super.paint()
    来修复它

  • 最后,类名(如
    bl
    )应该以大写字符开头。IdeOne的编译器为此向我抱怨

Happy hacking!

发现了描述相同问题的东西:JButton小部件仅在悬停在它们上方后才会显示

问题在于AWT和Swing组件/小部件混合在一起。我无法从您的代码片段中看出是否存在这种情况,但如果您有
java.AWT.*
imports,请禁用它们,重构代码以仅使用Swing类,然后再试一次/希望一切顺利


另一个建议是明确地执行
setVisible(true)
对于每个按钮,但发问者说,这对他的情况没有帮助。

您在小程序中使用Swing组件。您应该使用JApplet。只需将
扩展小程序
更改为
扩展JApplet

好的,我添加了代码。正如您所看到的,我添加了重新绘制(),但不幸的是…(顺便说一下,这是一个小程序,不是一个框架)好的,这是代码本身…它只有GUI…当我尝试编译时,我得到:C:\Documents and Settings\djasnowski\My Documents\bl.java:33:找不到符号符号:方法包()位置:class bl this.pack();我希望能尽快修复。我会回来报告。我收到了。我将Applet更改为JApple,但现在灰色的jPanel与绘制的瓷砖重叠(drawImage)tiles…更新了我的帖子。请仔细阅读我的评论。您正在显示的图像组件是否足够大以显示整个图像?再次,您发布的随机代码位无法帮助我们解决问题。您过去曾被要求提供SSCCE。了解如何创建并发布它,这样我们就不会浪费时间猜测您犯了什么愚蠢的错误这一次我正在做。Swing教程中有大量的例子。下载并测试它们,然后学习发布一个适当的问题。是的,教程中甚至有一个简单的JApplet示例。看到我的一些帖子,我添加了SSCCE.PS-从技术上讲,我确实发布了一个适当的问题。