- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
***编辑 - 我已经删除了所有不必要的代码(我认为这可能对某人查看我所采取的故障排除步骤有用)
我遇到了一个非常奇怪的问题。我正在实例化一个具有多个 Swing 对象的对象,但除最后一个实例之外的所有实例上的 jlabel 都消失了。它们都是相同的,但只有编号最高的数组索引才会显示其标签。但他们都应该被看到。我已经验证它们位于正确的位置并且具有正确的尺寸,并且设置为可见,但我无法弄清楚为什么会发生这种情况。我在另一台计算机上运行该程序,得到了相同的结果。只有两堂课。这是一个非常简单的程序,但我似乎无法弄清楚这个程序,有人可以运行这段代码并让我知道它是否有效吗?如果没有,有人可以找出问题所在吗?
import java.io.*;
import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class sizer extends JPanel {
public static int lhval = 10000;
public static int lvval = 10000;
public static int shval = 10000;
public static int svval = 10000;
public static String IDlbltxt = "0";
public static int IDlblint = 0;
static boolean DEBUG = true;
public final static JLabel IDlbl = new JLabel( "0" );
public sizer (int arg) {
setLayout(null);
setSize(91, 88);
setVisible( true );
IDlbltxt = Integer.toString(arg);
IDlblint = arg;
IDlbl.setHorizontalAlignment(SwingConstants.RIGHT);
IDlbl.setLocation( 40 , 30 );
IDlbl.setFont(new Font("Serif", Font.PLAIN, 18));
IDlbl.setText( IDlbltxt );
IDlbl.setVisible(true);
IDlbl.setBorder( BorderFactory.createLineBorder(Color.black, 5) );
IDlbl.setSize( IDlbl.getPreferredSize() );
add( IDlbl );
repaint();
}
public static void main(String[] args) {
final JFrame frame = new JFrame( "sizer - gettin it sized" );
frame.setLayout(null);
frame.setSize(320, 260);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible( true );
frame.getContentPane().setBackground( Color.red );
final sizer s1 = new sizer(0);
s1.setLocation( 1, 1);
frame.add(s1);
frame.repaint();
}
}
这是第二个文件。
import java.io.*;
import java.lang.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class sizerist extends JPanel {
final static sizer[] sizing = new sizer[21];
public sizerist () {}
public static void main(String[] args) {
final JFrame frame = new JFrame( "sizer - gettin it sized" );
frame.setLayout(null);
frame.setSize(320, 260);
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible( true );
frame.getContentPane().setBackground( Color.red );
for (int i=1; i<6; i++) {
sizing[i] = new sizer(1);
if (i == 1) {
sizing[i].setLocation( 1, 1);
} else {
sizing[i].setLocation( sizing[i-1].getLocation().x, sizing[i-1].getLocation().y + sizing[i-1].getSize().height + 2);
}
frame.add(sizing[i]);
frame.setSize(sizing[i].getSize().width + sizing[i].getLocation().x, sizing[i].getSize().height + sizing[i].getLocation().y + 40);
}
frame.repaint();
}
}
最佳答案
所以,一系列的问题......
public static String IDlbltxt = "0";
public static int IDlblint = 0;
static boolean DEBUG = true;
public final static JLabel IDlbl = new JLabel( "0" );
static
不是你的 friend 。基本上,当您创建 sizer
的第一个实例时,这些static
变量将被初始化,并且永远不会再次初始化。
组件只能驻留在单个容器中,这意味着每次调用 add(IDlbl);
时,它都会先从当前容器中删除,然后再添加到新容器(或最后一个容器) sizer
的实例)
static
不是跨对象通信的机制,习惯传递引用以及使用 setter 和 getter
您的 sizer
类有一个 main
方法,这不是问题,只是一个混淆点......
在将所有组件添加到窗口后,最后调用 frame.setVisible(true);
。
避免使用 null
布局,像素完美布局是现代 UI 设计中的一种幻觉。影响组件个体尺寸的因素太多,您无法控制其中任何一个。 Swing 的设计初衷是与布局管理器一起工作,放弃它们将导致无穷无尽的问题,您将花费越来越多的时间来尝试纠正
因为您选择取消布局管理器,所以更新 UI 时将遇到无穷无尽的问题,因为任何通常有效的技术都可能不起作用或间歇性地起作用。
您可能想通读Code Conventions for the Java TM Programming Language ,这将使人们更容易阅读您的代码,也让您更轻松地阅读其他人
关于java - 我在实例化对象中的标签正在消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30470688/
所以我使用一个带有整个 block 的标签作为链接,它是一个产品展示,所以你点击它会转到产品页面。现在我创建了一个标签作为链接到购物车页面的按钮。所以我让它工作,但是当我点击购物车按钮时,两个页面都会
根据 Web 标准,创建带有标题 1 的链接的正确代码是什么? 是吗 stackoverflow 或 stackoverflow 谢谢 最佳答案 根据网络标准,您不能将 block 元素放入内
在Java中它是这样写的..当我移植这段代码时...意识到没有这样的东西 break 和continue . 我知道这些命令没有包含在内,因为在使用带有命令的 goto 时必须有一种更简洁的方法来执
我们有一个相当标准的发布过程,使用 Visual Source Safe 在发布之前标记构建。这允许我们在出现任何问题时从该标签中获取,并在需要更改时使用它进行分支。 我们有几个不同的项目,并且总是使
我必须创建一个搜索内容,其中包含搜索框、标题和段落描述。默认情况下,描述被禁用,当我输入一些与描述文本匹配的文本时,描述段落标签应该打开。一些匹配的演示是这样的: [ fiddle ][1] 但默认情
我一直在阅读有关 的文档标签,我似乎无法理解它与简单地使用 有何不同那是 display: none; 文档:template tag 例子 对比 例子
我需要一个脚本来复制当开关按钮打开时标记,当开关按钮关闭时删除标记。我需要一个简单的方法。这是开关按钮: 我试过这个: var change
JSF 是一个 MVC 框架,但我很困惑为什么我们已经有了这么多 HTML 标签还需要 JSF 标签。毫无疑问,JSF 简化了很多事情。我想进一步了解 JSF 中的模型 View 和 Controll
我在这个 website 上看到了那些 html 代码: Homepa
我添加了 photoswipe 插件,可以使用 搜索我的所有照片。标签,如果点击,照片就会变成全屏。我让它工作了,但现在我的导航栏(有 标签)在点击时会触发 photoswipe 插件。 在 ph
标签
我正在尝试截断显示自 的文本标签,但它不工作。我将样式应用于其他标签样式并且它确实有效(我看到的示例中没有一个使用 标签)。我想知道是否有人可以向我解释为什么会这样(我不是最擅长 HTML/CSS
HTML 是这样的: Menu 1 Menu 2 Sub menu 2
我可以更改 TextInputLayout 的位置 float 标签(底部 float 标签)吗?我需要为波纹管 float 标签设置正确的位置。 最佳答案 我解决了我的问题,这是我的 xml:
我的代码是 printMsg : function(data) { $("#message").html(data.bodyText); ... } 这里 data.body
我是 Scrapy 和 Xpath 的初学者,我正在寻找解析具有以下结构的网站 cat1 value1 value2
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我必须从 xml 中解析数据。这是我的 xml- 或者它的 url 是:http://mobileecommerce.site247365.com/admin/catdata.xml News f
如何创建应该允许多行数据的标记。不要说使用textarea标签。我知道,但我只想 标记因为标签具有 value 属性。所以当我从 xml 文件获取值时,我应该使用 jquery 语法动态获取.. 最佳
我有一个页面使用我定义的某些样式。 在同一页面上,我刚刚导入了一个使用自己样式的外部 jQuery 插件,例如,包括 。被我自己覆盖的标签样式。 如何确保我的样式表中的样式不会覆盖 jQuery 插件
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我是一名优秀的程序员,十分优秀!