java JPanel.setSize() 不起作用
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4999294/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
JPanel.setSize() not working
提问by user528050
Check out this code friends don't know why i am not able to set the size of JPanel... .
看看这段代码的朋友不知道为什么我无法设置JPanel的大小...。
import java.io.*;
import java.util.*;
import java.sql.*;
//import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/*<applet code="k" height=400 width=400></applet>*/
public class k extends JApplet implements ActionListener
{
JButton b,tinfo;
JLabel l1,l2;
JTextField f1,f2;
JPanel p1;
CardLayout c1;
public void init()
{
b=new JButton("submit");
f1=new JTextField(20);
f2=new JTextField(20);
l1=new JLabel("username");
l2=new JLabel("password");
p1=new JPanel();
c1=new CardLayout();
add(l1);
add(f1);
add(l2);
add(f2);
add(b);
add(p1);
setLayout(new FlowLayout());
b.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//Connection con=DriverManager.getConnection("jdbc:odbc:mohit:","system","rock");
try
{
Properties p=new Properties();
p.load(new FileInputStream("mohu.properties"));
String str1=f1.getText();
String str2=p.getProperty("username");
System.out.println(str1);
System.out.println(str2);
//System.out.println(Integer.toString(str2.length()));
if(str1.equals(str2))
{
if((f2.getText()).equals(p.getProperty("password")))
{
System.out.println("you are entered");
}
else
{
System.out.println("wrong first");
}
}
else
{
System.out.println("wrong second ");
}
tinfo=new JButton("teachers information");
p1.add(tinfo);
p1.setSize(200,200);
p1.setBackground(Color.RED);
//tinfo.setSize(50,50);
p1.setLayout(c1);
c1.next(p1);
}
catch(Exception ee)
{
ee.printStackTrace();
System.out.println("Exception caught ");
}
}
public void paint()
{}
}
回答by johan
Try using p1.setPreferredSize(new Dimension(200,200))
尝试使用 p1.setPreferredSize(new Dimension(200,200))
回答by Riley
It doesn't work because windows have a flexible size value. The can stretch and shrink, so you set a PREFERRED size as a kind of default.
它不起作用,因为窗口具有灵活的大小值。可以拉伸和收缩,因此您可以将 PREFERRED 大小设置为一种默认值。