求解答,我照着视频打,但还是无法显示发送那一栏,类似qq聊天窗口
前面打完很多报错的,我一直点报错那里改着改着就能出窗口,但无法显示发送栏TvT视频链接https://www.bilibili.com/video/BV1M4411A78q/?p=2&vd_source=365cb41fa9446d30de7f6616c006a969
package qq;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javafx.embed.swing.JFXPanel;
public class Kenhu extends JFrame {
public static void main(String[] args) {
new Kenhu();
}
private JTextArea jta;//文本域
private JScrollPane jsp;//滚动条
private JFXPanel jp;//面板
private JTextField jtf;//文本框
private JButton jb;//行为
public Kenhu() {
jta = new JTextArea();
jta.setEditable(false);
jsp =new JScrollPane(jta);
jp = new JFXPanel();
jtf=new JTextField(10);
jb= new JButton("发送");
//需将文本框与按钮添加到面板中
jp.add(jtf);
jp.add(jb);
//需要将滚动条与面板全部添加到窗体中
this.add(jsp,BorderLayout.CENTER);
this.add(jp,BorderLayout.SOUTH);
//需要设置标题,大小,位置,关闭。是否可见
this.setTitle("qq聊天");
this.setSize(300,300);
this.setLocation(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
就是用 JPanel 就行了
先看截图:
修改如下:
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.BorderLayout;
public class Kenhu extends JFrame {
public static void main(String[] args) {
new Kenhu();
}
private JTextArea jta;//文本域
private JScrollPane jsp;//滚动条
private JPanel jp;//面板
private JTextField jtf;//文本框
private JButton jb;//行为
public Kenhu() {
//需要设置标题,大小,位置,关闭。是否可见
this.setTitle("qq聊天");
this.setSize(300,300);
this.setLocation(300,300);
this.setLayout(new BorderLayout());
jta = new JTextArea();
jta.setEditable(false);
jsp =new JScrollPane(jta);
jp = new JPanel();
jtf=new JTextField(10);
jb= new JButton("发送");
//需将文本框与按钮添加到面板中
jp.add(jtf);
jp.add(jb);
//需要将滚动条与面板全部添加到窗体中
this.add(jsp,BorderLayout.CENTER);
this.add(jp,BorderLayout.SOUTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
这个问题具体的原因需要看代码才能确定,以下提供一些可能出现问题的地方和解决方案:
是否添加了发送栏这个组件,并且添加到了消息窗口之中 java // 创建发送栏组件 JTextField sendField = new JTextField(); window.add(sendField, BorderLayout.SOUTH); // 将发送栏添加到消息窗口之下
发送栏是否被遮挡在了消息窗口之外 需要检查消息窗口的布局方式,尝试将消息窗口的布局方式设置为 BorderLayout。
是否调用了消息窗口的pack()方法 在添加完所有组件之后,需要调用pack()方法以优化窗口布局。
如果以上方法都不行,建议提供具体的代码和报错信息。
以下是一些可能遇到的常见报错和解决方案:
NullPointerException(空指针异常) 这个错误通常是由于尝试访问一个空对象而引起的。检查代码中是否存在没有初始化的变量或者空指针情况,如果是,则需要将其赋初值或者进行非空判定(if (obj != null))。
ClassNotFoundException(类未找到异常) 这个异常通常是由于找不到特定的类而引起的。检查类名是否正确,是否有导入相关的包(import语句),以及类的访问权限是否正确(public、private、protected等)。
NoSuchMethodException(方法未找到异常) 这个异常通常是由于要调用的方法不存在而引起的。检查方法名是否正确,并且检查方法的参数列表是否正确。
ClassCastException(类转换异常) 这个异常通常是由于进行错误的类型转换而引起的。检查代码中是否存在类型不匹配的情况,如果需要进行类型转换,则需要使用instanceof来检查类型是否正确。
IllegalArgumentException(非法参数异常) 这个异常通常是由于传递了不正确的参数而引起的。检查参数是否符合方法要求、是否为空或者不合法等。另外,可以使用断言(assert)来验证参数的正确性。
以上仅为一些常见报错和解决方法,具体问题需要根据实际情况进行调试和解决。