我正在为我的程序中的错误消息设置一个JLabel,所以最初标签是空的label.setText(""),但是当出现错误时它应该改为类似的label.setText("Error, you have entered invalid data...").
如果我setSize(x,y)在标签上使用它,则会在发生错误消息时强制其他组件移位.但使用setPreferredSize(Dimension(x,y))并不影响他们.
Q1.这是为什么?
Q2.setSize(x,y)和之间有什么区别setPreferredSize(Dimension(x,y))
Q3.是否必须对布局做任何事情?
提前谢谢您的解释!
PS我正在使用GridBagLayout来定位我的组件JPanel.
我试图了解Map接口如何在Java中工作.我要做的是:遍历字符串数组,并为数组中的每个名称name[]放置grade0到5之间的随机.然后映射grade到name[i].然而,地图大小变得奇怪,虽然我在数组中有10个元素,map.size()映射后是5.为什么程序会多次计算相同的大小(参见输出)?以下是代码和输出:
import java.util.*;
class MapInterfaceExample{
public static void main(String[] args){
int grade = 0;
String[] name = {"Lisa", "Dan", "John", "Adam", "George", "Amanda", "Sarah", "James", "Derek", "Sam"};
Map<Integer,String> map=new HashMap<Integer,String>();
for(int i=0; i<name.length; i++){
grade = (int)(Math.random()*5+1);
map.put(grade, name[i]);
//System.out.println(grade + "\t"+ name[i]);
System.out.println("Size of map "+ map.size());}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
地图大小1
地图大小2
地图大小2
地图大小2
地图大小2
地图大小3
地图大小3
地图大小4
地图大小4
地图大小5