Java 如何在Swing中更新Jlabel文本
我有一个简单的GUI文件,如下所示: 但是,当我选择任何文件时,它与现有的Jlabel文本重叠,因此,请帮助我如何更新我的Jlabel文本 这是我的密码:Java 如何在Swing中更新Jlabel文本,java,swing,jlabel,Java,Swing,Jlabel,我有一个简单的GUI文件,如下所示: 但是,当我选择任何文件时,它与现有的Jlabel文本重叠,因此,请帮助我如何更新我的Jlabel文本 这是我的密码: protected static void excelButtonAction(){ excelReturnVal = fc.showOpenDialog(excelButton); if(excelReturnVal==JFileChooser.APPROVE_OPTION){
protected static void excelButtonAction(){
excelReturnVal = fc.showOpenDialog(excelButton);
if(excelReturnVal==JFileChooser.APPROVE_OPTION){
FileValidation.excelFileValidation(fc);
System.out.println(FileValidation.getName() );
if(status==JFileChooser.CANCEL_OPTION){
}else{
fileName=FileValidation.getName();
FileValidation.updatemylabel(fileName);
excelFileName = new JLabel(fileName);
excelFileName.setText(fileName);
excelFileName.setBounds(140, 67, 350, 30);
excelFileName.setFont(new Font("Myriad Pro",Font.PLAIN,10));
panel.add(excelFileName);
panel.revalidate();
panel.repaint();
}
} else{
System.out.println("Open command cancelled by user." + newline);
}
}
public static void updatemylabel(String exfileName){
excelFileName = new JLabel(fileName);
excelFileName.setText(fileName);
JFileChooser chooser = new JFileChooser();
chooser.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
if(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(evt.getPropertyName())){
JFileChooser chooser = (JFileChooser) evt.getSource();
File oldFile = (File) evt.getOldValue();
File newFile = (File) evt.getNewValue();
File curFile = chooser.getSelectedFile();
}else if(JFileChooser.SELECTED_FILES_CHANGED_PROPERTY.equals(evt.getPropertyName())){
JFileChooser chooser = (JFileChooser)evt.getSource();
File[] oldFiles = (File[])evt.getOldValue();
File[] newFiles = (File[])evt.getNewValue();
File[] files = chooser.getSelectedFiles();
}
}
});
excelFileName = new JLabel(fileName);
excelFileName.setText(fileName);
excelFileName.setBounds(140, 67, 350, 30);
excelFileName.setFont(new Font("Myriad Pro",Font.PLAIN,10));
panel.add(excelFileName);
panel.revalidate();
panel.repaint();
existingText=exfileName;
}
如果需要任何进一步的信息来解决我的问题,请告诉我。
提前感谢您的合作 您的代码每次都会创建一个新的
JLabel
实例。您需要创建一个实例一次,将其存储在类的字段中,并在需要更新时调用setText()
。您的代码每次都会创建一个新的JLabel
实例。您需要创建一个实例,将其存储在类的字段中,并在需要更新时调用setText()
。为了更好地理解java中的标签,您可以查看以下内容:
这是一个绑定JavaBeans的属性。为了更好地理解java中的标签,您可以查看以下内容:
这是一个绑定JavaBeans的属性。如果您详细解释,我们将不胜感激,尽管我也尝试过这种方法,但没有运气。您到底尝试了什么,以及“没有运气”到底意味着什么?@Ravi,静态方法的使用告诉我您需要重新设计代码。您不应该使用静态方法。我建议您首先阅读上Swing教程的部分。它向您展示了如何创建JTextArea的单个实例,然后根据需要在不同的方法中更新文本。因此,请下载教程中的
TextDemo
代码,了解其工作原理,然后修复代码。如果您详细解释,我们将不胜感激,尽管我也尝试过这种方法,但没有运气。您到底尝试了什么,以及“没有运气”到底意味着什么?@Ravi,静态方法的使用告诉我需要重新设计代码。您不应该使用静态方法。我建议您首先阅读上Swing教程的部分。它向您展示了如何创建JTextArea的单个实例,然后根据需要在不同的方法中更新文本。因此,请下载本教程中的TextDemo
代码,了解其工作原理,然后修复代码。1)要更快获得更好的帮助,请发布或。2) excelFileName.setBounds(140,67,350,30)代码>Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。相反,使用布局管理器,或者与布局填充和边框一起使用。1)为了更快地获得更好的帮助,请发布或。2) excelFileName.setBounds(140,67,350,30)代码>Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作,在不同的地区使用不同的PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或与布局填充和边框一起使用。