我一直在做一些基础教程.其中一个要求我设置一个数组来保存以下字符串值:
Beyonce (f)
David Bowie (m)
Elvis Costello (m)
Madonna (f)
Elton John (m)
Charles Aznavour (m)
Run Code Online (Sandbox Code Playgroud)
写一个程序循环,计算有多少是男歌手,有多少是女性,并在控制台显示我的答案.
我设法完成它,但我设置我的阵列的方式与提供的答案不同.
我的如下:
String names[] = {"Beyonce (f)", "David Bowie (m)", "Elvis Costello (m)", "Madonna (f)", "Elton John (m)", "Charles Aznavour (m)"};
Run Code Online (Sandbox Code Playgroud)
提供的答案是这样的:
String[] singers = new String[6];
singers[0] = "Beyonce (f)";
singers[1] = "David Bowie (m)";
singers[2] = "Elvis Costello (m)";
singers[3] = "Madonna (f)";
singers[4] = "Elton John (m)";
singers[5] = "Charles Aznavour (m)";
Run Code Online (Sandbox Code Playgroud)
我应该创建一个"新"阵列吗?如果是这样,为什么?这两者有什么区别?
我正在学习 Java 中的 GUI 编程,并尝试修改现有程序以将包含按钮的垂直左侧面板添加到我的主框架中。
主要方法如下。目前,MainPanel 类扩展了 JPanel 并包含程序(基本游戏)的主要组件。我想在游戏右侧创建一个新面板。
public static void main(String[] args) {
JFrame frame = new JFrame("Sokuban");
MainPanel panel = new MainPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
我明白(我认为!)如何添加按钮 - 我没有被困在那里。
我尝试过类似的事情:
frame.add(new MyPanel(), BorderLayout.NORTH);
Run Code Online (Sandbox Code Playgroud)
(MyPanel() 是扩展 JPanel 的新类)
window.setContentPane(panel, BoxLayout.X_AXIS);
Run Code Online (Sandbox Code Playgroud)
(不会编译)
我所困惑的是 a) 是否应该尝试创建包含在 JFrame 中的两个 JPanel,然后使用 BoxLayout (??) 将它们并排放置。或者,b) 我是否应该创建第二个 JPanel 放在 MainPanel 中,并以某种方式在那里重新排列它?
另外,尽管阅读了文献,但我不明白 setContentPane() 方法在做什么。任何指示将不胜感激。