Я использую образец кода с веб-сайта Java, и, как представляется, селектор файлов получает файл, который я хочу, но когда я пытаюсь обновить jframe и другие компоненты в gui Я называл селектор файлов, ничего не менял. Я попробовал немало из предложенных исправлений, чтобы обновить информацию, но ничего не работает. Большинство моих компонентов являются статическими, кстати ...Java: Swing компонент (ы), не перекраивающий
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.awt.event.*;
public class GuiTester extends JFrame {
private static String fileName = "Input File: Please select a file";
//Create a file chooser
private static final JFileChooser fc = new JFileChooser();
private static JButton inputSelectorButton;
private static JButton outputSelectorButton;
private static JFrame frame = new JFrame("Gui Tester");
private static JPanel panel = new JPanel();
private static JLabel inputFile = new JLabel(fileName);
public static void main(String[] args) {
go();
}
private static void go() {
inputSelectorButton = new JButton ("Select Input File");
outputSelectorButton = new JButton ("Select Output File");
Font bigFont = new Font("sans", Font.BOLD, 22);
Font smallFont = new Font("sans", Font.PLAIN, 9);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
JLabel description0 = new JLabel(" ");
JLabel description6 = new JLabel(" ");
JLabel inputFile = new JLabel(fileName);
inputFile.setFont(smallFont);
inputSelectorButton.addActionListener(new inputSelectorListener());
JButton startButton = new JButton ("GO!");
panel.add(description0);
panel.add(description6);
panel.add(inputFile);
panel.add(inputSelectorButton);
panel.add(outputSelectorButton);
panel.add(startButton);
frame.getContentPane().add(BorderLayout.CENTER, panel);
inputFile.setAlignmentX(JComponent.CENTER_ALIGNMENT);
inputSelectorButton.setAlignmentX(JComponent.CENTER_ALIGNMENT);
outputSelectorButton.setAlignmentX(JComponent.CENTER_ALIGNMENT);
startButton.setAlignmentX(JComponent.CENTER_ALIGNMENT);
frame.setSize(370,400);
panel.setSize(370,400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static class inputSelectorListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == inputSelectorButton) {
int returnVal = fc.showOpenDialog(panel);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
if (file.exists())
fileName = file.getPath();
else
fileName = "File not found, please select a file";
System.out.println(fileName);
inputFile.setText(fileName);
inputFile.validate();
inputFile.repaint();
panel.validate();
panel.repaint();
frame.validate();
frame.repaint();
} else {
System.out.println("Open command cancelled by user.");
}
}
}
}
}
Вероятно потому, что ссылки у вас есть не являются ссылками на экране, но это только предположение, как вы смогли обеспечили работоспособный пример демонстрирует вашу проблему ... – MadProgrammer
Для лучшего помогите раньше, опубликуйте [Минимальный полный испытанный и читаемый пример] (http://stackoverflow.com/help/mcve) (MCTRE). –
@AndrewThompson сделано. – Lido