我有两个类一个用于图形,一个用于通过文本使用textarea进行用户输入。当我在同一个包中运行它们时,只有其中一个运行,我怎么能一起运行,以便图形将与用户输入一起运行。
这是图形
package pack;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class gui extends JPanel implements Runnable{
Thread t = new Thread(this);
input inputObject = new input();
public int x;
public int y;
public static void main(String args[])
{
new gui();
}
public gui()
{
JFrame f = new JFrame();
System.out.println("::");
f.setTitle("Basic window");
f.setSize(500, 500);
f.setLocationRelativeTo(null);
f.add(this);
f.setVisible(true);
f.setFocusable(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.start(); System.out.println(":::");
}
public void run()
{
while(true)
{
try
{
t.sleep(10);
}
catch(Exception e){}
x++;
y++;
repaint();
}
}
public void paint (Graphics g)
{
System.out.println(":D");
g.setColor(Color.red);
g.drawString("hi",x,y);
}
}
这是文字
package pack;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class input extends JPanel implements ActionListener {
protected JTextField textField;
protected JTextArea textArea;
private final static String newline = "\n";
public input()
{
super(new GridBagLayout());
textField = new JTextField(20);
textField.addActionListener(this);
textArea = new JTextArea(5, 20);
textArea.setEditable(false);
JScrollPane scrollPane = new JScrollPane(textArea);
GridBagConstraints c = new GridBagConstraints();
c.gridwidth = GridBagConstraints.REMAINDER;
c.fill = GridBagConstraints.HORIZONTAL;
add(textField, c);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
c.weighty = 1.0;
add(scrollPane, c);
}
public void actionPerformed(ActionEvent evt) {
String text = textField.getText();
textArea.append(text + newline);
textField.selectAll();
textArea.setCaretPosition(textArea.getDocument().getLength());
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("TextDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new input());
frame.pack();
frame.setVisible(true);
}
public static void main (String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
答案 0 :(得分:0)
如果要向gui添加输入,请在gui构造函数中创建另一个类的实例并将其添加到gui
// in gui()
input my_input = new input();
add(my_input);
提示:班级名称应以大写字母开头。 tip2:你应该在一个类中只有main方法,并为其添加其他类。
如果您了解或需要更多帮助,请告诉我。