Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing Scala问题-面板100%扩展_Java_Swing_Scala - Fatal编程技术网

Java Swing Scala问题-面板100%扩展

Java Swing Scala问题-面板100%扩展,java,swing,scala,Java,Swing,Scala,即使代码是scala,也可以看到面向swing的方法。我只想在面板(核心)上添加一个文本区域,并将面板(核心)与框架相关联。我想面板核心和文本区域填充100%的宽度和高度。基本上,我只想显示一个文本区域。有了这段代码,我可以看到文本字段,但就是它。宽度看起来只有1个像素 可能的解决方案?我是否应该找到一种向框架添加布局的方法?哪种布局 import java.awt.{ Insets, GridBagConstraints, Dimension } import javax.swing.{ JP

即使代码是scala,也可以看到面向swing的方法。我只想在面板(核心)上添加一个文本区域,并将面板(核心)与框架相关联。我想面板核心和文本区域填充100%的宽度和高度。基本上,我只想显示一个文本区域。有了这段代码,我可以看到文本字段,但就是它。宽度看起来只有1个像素

可能的解决方案?我是否应该找到一种向框架添加布局的方法?哪种布局

import java.awt.{ Insets, GridBagConstraints, Dimension }
import javax.swing.{ JPanel, JScrollPane, JTextArea }
import scala.swing.Swing._
import scala.swing.{ MainFrame, Panel, SimpleSwingApplication }

object LogAnaylyzerMain extends SimpleSwingApplication {

  def maxWidth = 900
  def maxHeight = 600
  def initXPos = 320
  def initYPos = 260

  /**
   * Core Panel Content.
   */
  object coreContentPanel extends JPanel {

    val outputTextArea = new JTextArea
    val outputTextScrollPane = new JScrollPane(outputTextArea)
    this.add(outputTextScrollPane)
  }

  class outputTextArea extends JTextArea {
    this.setLineWrap(false)
    this.setCaretPosition(0)
    this.setEditable(true);
  }

  /**
   * Main Frame, entry point.
   */
  def top = new MainFrame {
    peer.setLocation(initXPos, initYPos)
    title = "JVM Log Analyzer"
    contents = new Panel {
      preferredSize = (maxWidth, maxHeight)
      focusable = true
      peer.add(coreContentPanel)
      pack()
    }
  }

} // End of the Class //
(和
面板
)的默认布局为。使用或居中应该让
JTextArea
填充首选大小

附录:下面是一个(有些)类似的Java Swing示例:

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

/** @see http://stackoverflow.com/questions/5421319 */
public class TextAreaTest extends JPanel {

    private static final int maxWidth = 900;
    private static final int maxHeight = 600;
    private static final int initXPos = 320;
    private static final int initYPos = 260;
    private JTextArea ta = new JTextArea();

    public TextAreaTest() {
        this.setPreferredSize(new Dimension(900, 600));
        this.setLayout(new GridLayout());
        this.add(ta);
        ta.append("Hello, world!");
    }

    private void display() {
        JFrame f = new JFrame("TextAreaTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(this);
        f.pack();
        f.setLocation(initXPos, initYPos);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new TextAreaTest().display();
            }
        });
    }
}

看起来很有希望。所以我只是缺少了一个好的默认布局;我的Scala有点弱。:-)我对你使用
面板感到困惑。
JPanel
可能是更好的选择吗?他正在导入scala.swing.Panel。我想这是在包装一个JPanel。