概述
通常setBounds()方法将被调用的对象放置在指定的位置并以指定的大小放置。
我创建了一个JFrame类,并通过设置setLayout(null)演示了其在按钮上的工作。
然后,我创建了一个扩展JPanel的类,并在其中添加了一些组件。
这些组件的界限是在方法内部设置的。
此类的对象包含在扩展JFrame的类中。
然后,此对象调用setBound()方法。
但是结果没有显示JPanel扩展类中的组件。
cde片段如下。
class Administrator extends JFrame implements ActionListener
{
public Administrator()
{
setTitle("Administration");
setSize(500,500);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(null);
JButton newbutton=new JButton(" New.. ");
newbutton.addActionListener(this);
add(newbutton);
newbutton.setBounds(100,100,100,25);
setVisible(true);
public static void main(String arg[])
{
new Administrator();
}
public void actionPerformed(ActionEvent ae)
{
String act=(String)ae.getActionCommand();
if(act.equals("New Registry..")||act.equals(" New.. "))
{
regPanel rgpnl=new regPanel();
Dimension sz;
sz=rgpnl.getPreferredSize();
rgpnl.setBounds(800,800,sz.width,sz.height);
rgpnl.arrangeComponents();
add(rgpnl);
repaint();
setVisible(true);
}
}
class regPanel extends JPanel
{
Label namelab;
JTextField name;
JButton do_register;
public regPanel()
{
//Container = get ();
setLayout(null);
namelab=new Label("Name :");
name=new JTextField(20);
add(namelab);
add(name);
add(do_register);
}
public void arrangeComponents()
{
Dimension size;
size=namelab.getPreferredSize();
namelab.setBounds(20,10,size.width,size.height);
name.getPreferredSize();
name.setBounds(150,10,size.width,size.height);
do_register.setBounds(10,10,size.width,size.height);
repaint();
}
}
参考方案
除了代码中的某些可疑部分(例如缺少大括号,空指针和此类错误)之外,您的代码创建的组件的大小为(800,800),而接口的大小仅为500x500 px。这将使组件不可见。将组件置于距窗口原点较小的偏移量,它们将显示。 (我对此进行了测试,并对代码进行了一些修改,例如针对setLayout(null)进行调用的顺序。此调用似乎应该在正确的时间进行,否则这些组件将不会对我显示。)
Java Swing SearchBox模型 - java
我需要使用Java Swing的搜索框,如果单击任何建议,当输入字母时它将显示来自数据库的建议,它将执行一些操作。如果有可能在Java swing中,请提供源代码提前致谢 java大神给出的解决方案 您可以使用DefaultComboBoxModel,输出将是这样。Try this在此代码中,您将找到countries数组,因此您需要从数据库中获取此数组。Swing-典型桌面应用程序中的并发 - java
这可能是一个广泛的问题,但我想知道单用户桌面应用程序通常在何处使用并发。您如何发现理想情况下(在设计阶段)并发问题?附注:从操作系统理论上来说,并发问题通常发生在无法共享资源(例如打印机)的情况下。不过,我仍然对在编程级别上可能发生的情况感到迷惑。 java大神给出的解决方案 Event Dispatch thread与其他逻辑之间的Swing中可能存在线程…java:继承 - java
有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…Java:BigInteger,如何通过OutputStream编写它 - java
我想将BigInteger写入文件。做这个的最好方式是什么。当然,我想从输入流中读取(使用程序,而不是人工)。我必须使用ObjectOutputStream还是有更好的方法?目的是使用尽可能少的字节。谢谢马丁 参考方案 Java序列化(ObjectOutputStream / ObjectInputStream)是将对象序列化为八位字节序列的一种通用方法。但…Java-如何将此字符串转换为日期? - java
我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…
最后
以上就是娇气摩托为你收集整理的java setbounds无效_为什么即使将setLayout()设置为null后,setBounds()方法也不起作用? - java...的全部内容,希望文章能够帮你解决java setbounds无效_为什么即使将setLayout()设置为null后,setBounds()方法也不起作用? - java...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复