私は自分のプロジェクトを扱うときに問題が発生したら困惑します。 次のコードは抽象バージョンです。ちなみに、私は悲しいですが、私はそのように~~GUIでデータを更新してパラメータを渡す方法
メインエントリとフレーム
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;
}
}
セルフデザイン・モジュール
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;
}
}
リスナーで処理する必要があります
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