【问题标题】:Jpanel textbox no outputJpanel文本框没有输出
【发布时间】:2021-07-03 05:41:06
【问题描述】:

我正在使用 Jpanel 在 java 中工作,我的工作编译良好,但没有显示输出。希望有人能告诉我这是为什么。我正在使用 jscrollpane,如果它与侦听器或什么有关,我会在最后调用它 idk。

FileDemoPanel.java

package Tutoiral03Task01;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

  public class FileDemoPanel extends JPanel implements ActionListener {

   public void actionPerformed(ActionEvent e) {

    JButton openBtn, saveBtn;
    JTextArea  workTa;

    openBtn = new JButton ("Open");
    openBtn.setEnabled (false);
    openBtn.setMnemonic('g');
    openBtn.setToolTipText("open button");

    setLayout(new BorderLayout());


    saveBtn = new JButton ("Save");
    saveBtn.setEnabled (false);
    saveBtn.setMnemonic('f');
    saveBtn.setToolTipText("Save button");

    JTextArea logTA = new JTextArea (5, 100);
    logTA.setEditable(false);
    logTA.setBackground(Color.lightGray);
    logTA.setMargin(new Insets(5,5,5,5));
    JScrollPane logScrollPane = new JScrollPane(logTA);

    add(logScrollPane);

    }

}

FileDemo.java

package Tutoiral03Task01;

import javax.swing.*;

public class FileDemo {
   public static void main (String[] args){
       JFrame frame = new JFrame("Working with files");
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       frame.add(new FileDemoPanel());
       frame.pack();
       frame.setVisible(true);
   }
}  

【问题讨论】:

  • 为什么actionPerformed方法中设置FileDemoPanel的所有代码?在您当前的场景中永远不会调用此方法。如果将actionPerformed 方法中当前拥有的代码移动到FileDemoPanel 的构造函数中,将会得到预期的结果。
  • 这是我必须完成的任务的一部分。它必须像这样设置
  • 好吧,那么您需要一些实际调用该方法的东西。可能是您应该将JButton(例如)添加到您的JFrame,然后将FileDemoPanel 对象添加为ActionListener。你知道ActionListener 是什么以及它是如何工作的吗?这段代码的哪一部分是你自己写的?
  • 我获得了filedemo.java 和filedemopanel 的导入。其余的我自己写
  • 那么在这种情况下,您应该再次考虑我的第一条评论。将actionPerformed方法中当前的代码移动到FileDemoPanel的构造函数中。

标签: java swing jpanel jscrollpane


【解决方案1】:

问题在于您在 actionperformed 方法中创建了所有按钮和其他按钮。 这是错误的,因为它被用作 ButtonListener,所以如果你不按下按钮,什么都不会发生。我们使用在类的构造函数中编写GUI框架。然后我们创建GUI类的对象类型。所以我想我修好了它,我做了一些额外的改变,使程序更简单。我没有做的步骤是添加一个 ButtonListener,所以 Buttons 什么都不做。 希望对你有帮助。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class FileDemoPanel extends JFrame {
private   JPanel panel = new JPanel();
private   JButton openBtn = new JButton("Open");
private   JButton saveBtn =  new JButton ("Save");
private   JTextArea  workTa;

public  FileDemoPanel(){

    openBtn.setEnabled (false);
    openBtn.setMnemonic('g');
    openBtn.setToolTipText("open button");

    setLayout(new BorderLayout());



    saveBtn.setEnabled (false);
    saveBtn.setMnemonic('f');
    saveBtn.setToolTipText("Save button");

JTextArea logTA = new JTextArea (5, 100);
    logTA.setEditable(false);
    logTA.setBackground(Color.lightGray);
    logTA.setMargin(new Insets(5,5,5,5));
JScrollPane logScrollPane = new JScrollPane(logTA);

panel.add(openBtn);
panel.add(saveBtn);
panel.add(logTA);
panel.add(logScrollPane);

  this.setContentPane(panel);

  this.setVisible(true);
  this.setResizable(true);
  this.setSize(350,150);
  this.setTitle("Κεντρική Σελίδα");
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 }



  

 }

而主类。如你所见,太小了。

 public class FileDemo {
 public static void main (String[] args){
 new  FileDemoPanel();
 }
   }

【讨论】:

    猜你喜欢
    • 2011-05-11
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多