Привет, я работаю над программой, которая будет запускать список программ и открывать их. чтобы это выглядело красиво, мне нужно изменить текст в метке, чтобы он соответствовал имени программы. однако, когда я вызываю функции ChnageTitle и Refresh, они не работают. не могли бы вы указать, где я ошибаюсь?
вот основной автоматически сгенерированный код построителя окон, который я немного отредактировал и добавил
package WindowBuilder;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import Logic.ButtonPresses;
import javax.swing.JTextField;
import javax.swing.JLabel;
public class WindowBuilder {
public JLabel Title;
private JFrame frame;
/**
* Launch the application.
*/
public void Launch() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
WindowBuilder window = new WindowBuilder();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public WindowBuilder() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
public void Refresh(){
frame.revalidate();
frame.repaint();
}
public void ChangeTitle(){
Title.setText("Test");
}
public void initialize() {
frame = new JFrame();
frame.setResizable(false);
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton btnNext = new JButton("Next");
btnNext.setBounds(365, 226, 79, 45);
btnNext.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
ButtonPresses.Next();
}
});
frame.getContentPane().setLayout(null);
frame.getContentPane().add(btnNext);
JButton btnBack = new JButton("Back");
btnBack.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ButtonPresses.Back();
}
});
btnBack.setBounds(0, 226, 79, 45);
frame.getContentPane().add(btnBack);
Title = new JLabel("Program Name");
Title.setBounds(9, 11, 89, 33);
frame.getContentPane().add(Title);
JButton btnInstall = new JButton("Install/Run");
btnInstall.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnInstall.setBounds(173, 226, 116, 45);
frame.getContentPane().add(btnInstall);
}
}
здесь я вызываю функции.
package Main;
import Logic.ProgramAdder;
import Logic.Programs;
import WindowBuilder.WindowBuilder;
public class Main {
public static void main(String[] args) {
Main start = new Main();
start.Start();
}
public void Start(){
WindowBuilder wb = new WindowBuilder();
wb.Launch();
ProgramAdder.ProgramList();
DisplayPrograms();
wb.ChangeTitle();
wb.Refresh();
}
public static void DisplayPrograms(){
for (Programs p : ProgramAdder.programs) {
System.out.print(p.ProgramName);
System.out.println(p.ProgramPath);
}
}
}