Я озадачен, когда сталкиваюсь с проблемой при обработке моего проекта. Следующий код представляет собой абстрактную версию. Кстати, мне грустно, но я должен обрабатывать таким образом ~~Метод обновления данных в графическом интерфейсе и параметре доставки
Главный вход и рамы
package com.ryougi.repaint;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
public class RepaintTest {
public static void main(String[] args) {
EventQueue.invokeLater(()-> {
JFrame frame = new TableFrame();
frame.setVisible(true);
});
}
}
class TableFrame extends JFrame {
private JScrollPane scrollPane;
private JLabel label;
private JButton button;
private String data = "Old Data";
public TableFrame() {
setTitle("TableFrame Frame");
setSize(960, 540);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initLayout();
}
public void initLayout() {
button = new JButton("Add");
label = new JLabel("Old Data");
scrollPane = MyModule.MyScrollPane(data);
// Style of scrollPane
scrollPane.setBounds(0, 0, 960, 360);
scrollPane.setBackground(Color.CYAN);
// Style of button
button.setBounds(420, 400, 120, 40);
button.setBorder(null);
button.setBackground(Color.PINK);
// Listener of button
button.addMouseListener(new BtnClickListener(this));
add(scrollPane);
add(button);
}
public JScrollPane getScrollPane() {
return scrollPane;
}
public void setScrollPane(JScrollPane scrollPane) {
this.scrollPane = scrollPane;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
Self-дизайн модуля
package com.ryougi.repaint;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
public class MyModule {
private static JScrollPane scrollPane;
private static JLabel label;
public static JScrollPane MyScrollPane(String data) {
label = new JLabel(data);
scrollPane = new JScrollPane(label);
return scrollPane;
}
}
Listener
package com.ryougi.repaint;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class BtnClickListener extends MouseAdapter {
private String data = "New Data";
private JFrame frame;
public BtnClickListener(JFrame frame) {
this.frame = frame;
}
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
// ((TableFrame) frame).setData(data);
((TableFrame) frame).setScrollPane(MyModule.MyScrollPane(data));
((TableFrame) frame).getScrollPane().repaint();
}
}
Я хочу перерисовать scrollPanel
, чтобы обновить текстовое шоу на label
, то есть от Old Data
до New Data
. Но я не смог его изменить, позвонив по телефону
((TableFrame) frame).setScrollPane(MyModule.MyScrollPane(data));
((TableFrame) frame).getScrollPane().repaint();
Может ли кто-нибудь предоставить мне совет? Спасибо. Что мне делать для достижения моей цели?
Спасибо, Что мне следует сделать для достижения моей цели? – RyougiShiki
У меня возникают технические проблемы прямо сейчас, но я сейчас обновляю свой ответ, дайте мне мгновение: D – Mark
Спасибо, ваш anwser. То, как вы показываете, является работоспособным, но я передаю проект, нуждающийся в большом объеме модуля самоопределения. Этот экземпляр является простым, я упрощаю проблему в моем проекте. Мне нужно использовать модуль самоопределения. Сделать это как предварительное условие, есть ли другой способ его решения? В моем проекте я хотел бы предоставить ResultSet. – RyougiShiki