这可以正常编译,但是执行代码时看不到任何内容。我需要更改什么?
我已经删除了我的Swing / AWT导入,所以我可以发布问题。代码很短,我的问题也很短,但显然不够好...
class Exercise1 {
public static void main(String[] args) {
new MyFrame("Test");
}
}
class MyFrame extends JFrame{
public MyFrame(String title){
super(title);
int i = 2;
int j = 2;
JPanel[][] panelHolder = new JPanel[i][j];
setLayout(new GridLayout(i,j));
for(int m = 0; m < i; m++) {
for(int n = 0; n < j; n++) {
panelHolder[m][n] = new JPanel();
add(panelHolder[m][n]);
}
}
JTextField t1 = new JTextField();
JTextField t2 = new JTextField();
JTextField t3 = new JTextField();
panelHolder[2][0].add(t1);
panelHolder[2][1].add(t2);
panelHolder[2][2].add(t3);
setVisible(true);
}
}
答案 0 :(得分:1)
这可以正常编译,但是执行代码时看不到任何东西。
因为您获得了运行时异常。
数组索引基于0。
public class MapFragment extends SupportMapFragment implements OnMapReadyCallback {
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
}
rxLocation = new RxLocation(Objects.requireNonNull(this.getActivity()));
rxPermissions = new RxPermissions(this);
rxPermissions.setLogging(true);
mCtx = this.getActivity();
}
您创建了一个2D数组,在每2行中每个空间都有2个值。
int i = 2;
int j = 2;
JPanel[][] panelHolder = new JPanel[i][j];
但是您尝试将组件添加到第三行/值,这会导致异常。
将数组大小更改为3,或仅使用索引0和1。
此外,当您创建JTextField时,请使用:
panelHolder[2][0].add(t1);
panelHolder[2][1].add(t2);
panelHolder[2][2].add(t3);
因此文本字段的大小合理。