如何更新 JFrame 组件?
How to Update JFrame Components?
好的,我有这个代码。
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
import java.awt.Font;
import javax.swing.JSeparator;
import javax.swing.JTextPane;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Menu {
private JFrame frmFelps;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Menu window = new Menu();
window.frmFelps.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Menu() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
Funcoes acoes = new Funcoes();
frmFelps = new JFrame();
frmFelps.setResizable(false);
frmFelps.setTitle("Felps");
frmFelps.setBounds(100, 100, 824, 522);
frmFelps.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmFelps.getContentPane().setLayout(null);
JProgressBar progressoSede = new JProgressBar();
progressoSede.setStringPainted(true);
progressoSede.setValue(acoes.getSede());
progressoSede.setBounds(71, 25, 100, 25);
frmFelps.getContentPane().add(progressoSede);
JProgressBar progressoAmor = new JProgressBar();
progressoAmor.setValue(acoes.getAmor());
progressoAmor.setStringPainted(true);
progressoAmor.setBounds(71, 56, 100, 25);
frmFelps.getContentPane().add(progressoAmor);
JProgressBar progressoFeliz = new JProgressBar();
progressoFeliz.setValue(acoes.getFeliz());
progressoFeliz.setStringPainted(true);
progressoFeliz.setBounds(71, 85, 100, 25);
frmFelps.getContentPane().add(progressoFeliz);
JLabel lblSede = new JLabel("Sede:");
lblSede.setToolTipText("Porcentagem de AQUA que voc\u00EA bebeu e gravou nos ultimos tempos.");
lblSede.setFont(new Font("Arial", Font.PLAIN, 16));
lblSede.setBounds(24, 25, 46, 23);
frmFelps.getContentPane().add(lblSede);
JLabel lblAmor = new JLabel("Amor:");
lblAmor.setToolTipText("O Amor n\u00E3o precisa ser descrito com palavras.");
lblAmor.setFont(new Font("Arial", Font.PLAIN, 16));
lblAmor.setBounds(24, 56, 46, 23);
frmFelps.getContentPane().add(lblAmor);
JLabel lblFeliz = new JLabel("Feliz:");
lblFeliz.setToolTipText("Um Felps Feliz \u00E9 um Felps que n\u00E3o esta Triste.");
lblFeliz.setFont(new Font("Arial", Font.PLAIN, 16));
lblFeliz.setBounds(24, 85, 46, 23);
frmFelps.getContentPane().add(lblFeliz);
JLabel lblCamera = new JLabel("Camera:");
lblCamera.setToolTipText("Quanto melhor a Camera mais Video com FaceCam o Felps Faz");
lblCamera.setBounds(24, 168, 74, 14);
frmFelps.getContentPane().add(lblCamera);
JLabel lblPc = new JLabel("PC:");
lblPc.setToolTipText("Quanto melhor seu PC mais o Cellbits vai sentir inveja de voc\u00EA.");
lblPc.setBounds(24, 199, 74, 14);
frmFelps.getContentPane().add(lblPc);
JLabel lblFone = new JLabel("Fone:");
lblFone.setToolTipText("Hey Galera Felps falando e bem vindos ao meu canal.");
lblFone.setBounds(24, 230, 74, 14);
frmFelps.getContentPane().add(lblFone);
JLabel lblInscritos = new JLabel("Inscritos:");
lblInscritos.setToolTipText("Quanto mais melhor. (P.S.: Eles s\u00F3 v\u00E3o te amar se voc\u00EA amar eles)");
lblInscritos.setBounds(50, 290, 83, 14);
frmFelps.getContentPane().add(lblInscritos);
JLabel lblDinheiros = new JLabel("Dinheiros:");
lblDinheiros.setToolTipText("Quantos dinheiros existem dentro do seu bolso Felpastico.");
lblDinheiros.setBounds(10, 432, 60, 14);
frmFelps.getContentPane().add(lblDinheiros);
JTextPane txtpnCamera = new JTextPane();
txtpnCamera.setEditable(false);
txtpnCamera.setText(acoes.getCamera());
txtpnCamera.setBounds(108, 162, 104, 20);
frmFelps.getContentPane().add(txtpnCamera);
JTextPane txtpnPc = new JTextPane();
txtpnPc.setText(acoes.getPc());
txtpnPc.setEditable(false);
txtpnPc.setBounds(108, 193, 104, 20);
frmFelps.getContentPane().add(txtpnPc);
JTextPane txtpnFone = new JTextPane();
txtpnFone.setText(acoes.getFone());
txtpnFone.setEditable(false);
txtpnFone.setBounds(108, 224, 104, 20);
frmFelps.getContentPane().add(txtpnFone);
JTextPane txtpnInscrito = new JTextPane();
txtpnInscrito.setEditable(false);
txtpnInscrito.setText(acoes.getInscritos());
txtpnInscrito.setBounds(24, 315, 130, 20);
frmFelps.getContentPane().add(txtpnInscrito);
JTextPane txtpnDinheiro = new JTextPane();
txtpnDinheiro.setText(acoes.getDinheiro());
txtpnDinheiro.setEditable(false);
txtpnDinheiro.setBounds(80, 426, 91, 20);
frmFelps.getContentPane().add(txtpnDinheiro);
JButton btnYoutube = new JButton("YouTube");
btnYoutube.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
}
});
JSeparator separator = new JSeparator();
separator.setOrientation(SwingConstants.VERTICAL);
separator.setBounds(228, 0, 13, 493);
frmFelps.getContentPane().add(separator);
btnYoutube.setBounds(534, 172, 146, 25);
frmFelps.getContentPane().add(btnYoutube);
JButton btnCasa = new JButton("Casa");
btnCasa.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
acoes.setInscritos(10);
//txtpnInscrito.setText(acoes.getInscritos());
atualizador();
//txtpnInscrito.setText(acoes.getInscritos());
}
});
btnCasa.setBounds(268, 171, 146, 25);
frmFelps.getContentPane().add(btnCasa);
JButton btnCidade = new JButton("Cidade");
btnCidade.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
}
});
btnCidade.setBounds(268, 264, 146, 25);
frmFelps.getContentPane().add(btnCidade);
JButton btnBica = new JButton("Bica");
btnBica.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
}
});
btnBica.setBounds(534, 265, 146, 25);
frmFelps.getContentPane().add(btnBica);
JLabel lblFundo = new JLabel("New label");
lblFundo.setIcon(new ImageIcon("img\mapa.png"));
lblFundo.setBounds(251, 20, 528, 435);
frmFelps.getContentPane().add(lblFundo);
}
private void atualizador(){
//TODO
}
}
我想在每次运行 atualizador() 时更改 txtpnInscrito 上的文本
但我不知道该怎么做。
如果我直接在按钮 btnCasa 中更改文本,它会发生变化,但我想按时间进行刷新,并在对按钮执行操作时利用相同的功能进行刷新。
提前致谢。
抱歉英语太差了。
您需要创建 class 的 txtpnInscrito
字段,以便您可以在 class
中的所有方法中访问它
查看Understanding Class Members了解更多详情
好的,我有这个代码。
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
import java.awt.Font;
import javax.swing.JSeparator;
import javax.swing.JTextPane;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Menu {
private JFrame frmFelps;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Menu window = new Menu();
window.frmFelps.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Menu() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
Funcoes acoes = new Funcoes();
frmFelps = new JFrame();
frmFelps.setResizable(false);
frmFelps.setTitle("Felps");
frmFelps.setBounds(100, 100, 824, 522);
frmFelps.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmFelps.getContentPane().setLayout(null);
JProgressBar progressoSede = new JProgressBar();
progressoSede.setStringPainted(true);
progressoSede.setValue(acoes.getSede());
progressoSede.setBounds(71, 25, 100, 25);
frmFelps.getContentPane().add(progressoSede);
JProgressBar progressoAmor = new JProgressBar();
progressoAmor.setValue(acoes.getAmor());
progressoAmor.setStringPainted(true);
progressoAmor.setBounds(71, 56, 100, 25);
frmFelps.getContentPane().add(progressoAmor);
JProgressBar progressoFeliz = new JProgressBar();
progressoFeliz.setValue(acoes.getFeliz());
progressoFeliz.setStringPainted(true);
progressoFeliz.setBounds(71, 85, 100, 25);
frmFelps.getContentPane().add(progressoFeliz);
JLabel lblSede = new JLabel("Sede:");
lblSede.setToolTipText("Porcentagem de AQUA que voc\u00EA bebeu e gravou nos ultimos tempos.");
lblSede.setFont(new Font("Arial", Font.PLAIN, 16));
lblSede.setBounds(24, 25, 46, 23);
frmFelps.getContentPane().add(lblSede);
JLabel lblAmor = new JLabel("Amor:");
lblAmor.setToolTipText("O Amor n\u00E3o precisa ser descrito com palavras.");
lblAmor.setFont(new Font("Arial", Font.PLAIN, 16));
lblAmor.setBounds(24, 56, 46, 23);
frmFelps.getContentPane().add(lblAmor);
JLabel lblFeliz = new JLabel("Feliz:");
lblFeliz.setToolTipText("Um Felps Feliz \u00E9 um Felps que n\u00E3o esta Triste.");
lblFeliz.setFont(new Font("Arial", Font.PLAIN, 16));
lblFeliz.setBounds(24, 85, 46, 23);
frmFelps.getContentPane().add(lblFeliz);
JLabel lblCamera = new JLabel("Camera:");
lblCamera.setToolTipText("Quanto melhor a Camera mais Video com FaceCam o Felps Faz");
lblCamera.setBounds(24, 168, 74, 14);
frmFelps.getContentPane().add(lblCamera);
JLabel lblPc = new JLabel("PC:");
lblPc.setToolTipText("Quanto melhor seu PC mais o Cellbits vai sentir inveja de voc\u00EA.");
lblPc.setBounds(24, 199, 74, 14);
frmFelps.getContentPane().add(lblPc);
JLabel lblFone = new JLabel("Fone:");
lblFone.setToolTipText("Hey Galera Felps falando e bem vindos ao meu canal.");
lblFone.setBounds(24, 230, 74, 14);
frmFelps.getContentPane().add(lblFone);
JLabel lblInscritos = new JLabel("Inscritos:");
lblInscritos.setToolTipText("Quanto mais melhor. (P.S.: Eles s\u00F3 v\u00E3o te amar se voc\u00EA amar eles)");
lblInscritos.setBounds(50, 290, 83, 14);
frmFelps.getContentPane().add(lblInscritos);
JLabel lblDinheiros = new JLabel("Dinheiros:");
lblDinheiros.setToolTipText("Quantos dinheiros existem dentro do seu bolso Felpastico.");
lblDinheiros.setBounds(10, 432, 60, 14);
frmFelps.getContentPane().add(lblDinheiros);
JTextPane txtpnCamera = new JTextPane();
txtpnCamera.setEditable(false);
txtpnCamera.setText(acoes.getCamera());
txtpnCamera.setBounds(108, 162, 104, 20);
frmFelps.getContentPane().add(txtpnCamera);
JTextPane txtpnPc = new JTextPane();
txtpnPc.setText(acoes.getPc());
txtpnPc.setEditable(false);
txtpnPc.setBounds(108, 193, 104, 20);
frmFelps.getContentPane().add(txtpnPc);
JTextPane txtpnFone = new JTextPane();
txtpnFone.setText(acoes.getFone());
txtpnFone.setEditable(false);
txtpnFone.setBounds(108, 224, 104, 20);
frmFelps.getContentPane().add(txtpnFone);
JTextPane txtpnInscrito = new JTextPane();
txtpnInscrito.setEditable(false);
txtpnInscrito.setText(acoes.getInscritos());
txtpnInscrito.setBounds(24, 315, 130, 20);
frmFelps.getContentPane().add(txtpnInscrito);
JTextPane txtpnDinheiro = new JTextPane();
txtpnDinheiro.setText(acoes.getDinheiro());
txtpnDinheiro.setEditable(false);
txtpnDinheiro.setBounds(80, 426, 91, 20);
frmFelps.getContentPane().add(txtpnDinheiro);
JButton btnYoutube = new JButton("YouTube");
btnYoutube.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
}
});
JSeparator separator = new JSeparator();
separator.setOrientation(SwingConstants.VERTICAL);
separator.setBounds(228, 0, 13, 493);
frmFelps.getContentPane().add(separator);
btnYoutube.setBounds(534, 172, 146, 25);
frmFelps.getContentPane().add(btnYoutube);
JButton btnCasa = new JButton("Casa");
btnCasa.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
acoes.setInscritos(10);
//txtpnInscrito.setText(acoes.getInscritos());
atualizador();
//txtpnInscrito.setText(acoes.getInscritos());
}
});
btnCasa.setBounds(268, 171, 146, 25);
frmFelps.getContentPane().add(btnCasa);
JButton btnCidade = new JButton("Cidade");
btnCidade.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
}
});
btnCidade.setBounds(268, 264, 146, 25);
frmFelps.getContentPane().add(btnCidade);
JButton btnBica = new JButton("Bica");
btnBica.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//TODO Fazer Algo
}
});
btnBica.setBounds(534, 265, 146, 25);
frmFelps.getContentPane().add(btnBica);
JLabel lblFundo = new JLabel("New label");
lblFundo.setIcon(new ImageIcon("img\mapa.png"));
lblFundo.setBounds(251, 20, 528, 435);
frmFelps.getContentPane().add(lblFundo);
}
private void atualizador(){
//TODO
}
}
我想在每次运行 atualizador() 时更改 txtpnInscrito 上的文本 但我不知道该怎么做。 如果我直接在按钮 btnCasa 中更改文本,它会发生变化,但我想按时间进行刷新,并在对按钮执行操作时利用相同的功能进行刷新。
提前致谢。 抱歉英语太差了。
您需要创建 class 的 txtpnInscrito
字段,以便您可以在 class
查看Understanding Class Members了解更多详情