我正在尝试创建一个方法,以便在我的 creatAndShowGUI() 方法中更改 JLabel 的值。我要做的是在导入文件后更改一些JLabels的值(根据文件信息)。
private static void createAndShowGUI(){
// Create and set up window
final JFrame frame = new JFrame("SongApp");
// Display the window
frame.setSize(400, 150);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Set flowlayout
frame.getContentPane().setLayout(new FlowLayout());
try{
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch(Exception e){
System.err.println("Cannot set look and feel: " + e);
}
JButton loadFile = new JButton("Choose a new file ...");
JLabel songLength = new JLabel("0:00");
JLabel songName = new JLabel("No song selected yet");
loadFile.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
createFileChooser(frame);
}
});
frame.getContentPane().add(loadFile);
frame.getContentPane().add(songLength);
frame.getContentPane().add(songName);
}
我的方法需要是无效的,因为我稍后在我的主要方法中调用它
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run(){
createAndShowGUI();
}
});
在此之后,我创建了一个方法如下:
private static void changeWindowInformation(String filename, int time) {
createAndShowGUI().songName.setText(filename);
// code to check time of song and return it in format xx:xx
createAndShoGUI().songLength.setText(time);
}
此方法在 createFileChooser 方法中调用,该方法在单击 JButton 后在 createAndShowGUI() 方法中调用。
我看到一条错误消息:无法取消引用 void。我是 Java 编程的新手,我真的不知道我做错了什么。我应该将我的框架的创建放在我的代码中的其他地方(可能在我的主要方法下?)还是我没有以正确的方式访问 JLabel?我试图将方法调用放在我的 loadFile.addActionListener 方法中,并让它只返回字符串,这样我就可以访问 loadFile.addActionListener 中的 JLabels,但我仍然收到相同的错误消息。
如果您需要任何进一步的信息,请告诉我。
已经感谢您的帮助!!