【发布时间】:2013-03-18 12:56:56
【问题描述】:
我有两个Java(.java) files。一个有JButton 和JTextField,另一个有Thread。在第一个Java file 中,我在JButton 中添加了一个ActionListener,这样,当按下按钮时,一个线程(创建并启动线程中的第二个.java 文件的对象)运行,它不断修改一个整数变量.如何在JTextField(第一个 .java 文件)中显示该整数变量(第二个 .java 文件)的值?
检测.java
package sample;
public class Detection implements Runnable
{
public String viewers;
public int count;
public void run()
{
try
{
while (true)
{
// i have written code for displaying video.
// and it say how many no. of people in the video
// the no of people is stored in a variable "count"
viewers=""+count; //storing count as string so as to display in the JTextField
}
}
catch (Exception e)
{
System.out.println("Exception: "+e);
}
}
}
UsrInterfac.java
//使用WindowBuilder eclipse juno构建
package sample;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class UsrInterfac
{
private JFrame frame;
private JTextField textField;
Detection dd = new Detection();
Thread th = new Thread(dd);
/**
* Launch the application.
*/
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
UsrInterfac window = new UsrInterfac();
window.frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public UsrInterfac()
{
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize()
{
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton btnStartThread = new JButton("Start Thread");
btnStartThread.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
th.start();
}
});
btnStartThread.setBounds(59, 133, 117, 23);
frame.getContentPane().add(btnStartThread);
textField = new JTextField();
textField.setBounds(270, 134, 104, 20);
frame.getContentPane().add(textField);
textField.setColumns(10);
}
}
【问题讨论】:
-
很难理解你想要什么,试着用一些示例代码来解释,比如
Class Frame有JButton和JTextField。Class Processor想访问一些数据,像这样 -
我附上了代码。我希望将 Detection.java 中的变量“viewers”的值显示在 UsrInterfac.java 的“textField”中,请告诉我如何执行此操作。此外,当我们在线程中流式传输视频时,变量“viewers”会不断变化。
标签: java multithreading swing