Java JScrollPane不';我不能在这个领域工作
我试图将滚动窗格添加到我的文本区域,但它没有出现。 代码如下:Java JScrollPane不';我不能在这个领域工作,java,swing,jscrollpane,jtextarea,Java,Swing,Jscrollpane,Jtextarea,我试图将滚动窗格添加到我的文本区域,但它没有出现。 代码如下: import javax.swing.*; public class PracownikGui extends JFrame { private JPanel Panelek; private JTextArea Tekscik; private JScrollPane Skrol; public PracownikGui() { setMinimumSize(new Dimension(600, 600));
import javax.swing.*;
public class PracownikGui extends JFrame {
private JPanel Panelek;
private JTextArea Tekscik;
private JScrollPane Skrol;
public PracownikGui() {
setMinimumSize(new Dimension(600, 600));
setLocationRelativeTo(null);
setContentPane(Panelek);
setResizable(false);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
Tekscik();
public void Tekscik() {
Tekscik = new JTextArea(2, 10);
Skrol = new JScrollPane( Tekscik );
Tekscik.setSize(300, 300);
Tekscik.setLocation(20, 70);
Tekscik.setEditable(true);
Tekscik.setLineWrap(true);
add(Tekscik);
}}
请提供任何帮助。设置JTextArea的大小或首选大小是在攻击自己的脚,因为这会阻止它扩展到JScrollPane:
Tekscik.setSize(300, 300);
仅设置其行和列
您还需要将JScrollPane添加到GUI中,而不是JTextArea
此外,尽管空布局和setBounds()
或setSize(…)
和setLocation(…)
似乎是让新手们喜欢的最简单、最好的创建复杂GUI的方法,但您创建的GUI越多,在使用它们时会遇到越严重的困难。当GUI调整大小时,它们不会调整您的组件的大小,它们是一个需要增强或维护的皇家女巫,当它们放置在滚动窗格中时会完全失败,当在所有平台或屏幕分辨率与原始分辨率不同的情况下查看时,它们看起来非常糟糕
e、 g
您通过设置JTextArea的大小或preferredSize来攻击自己的脚,因为这会阻止它扩展到JScrollPane:
Tekscik.setSize(300, 300);
仅设置其行和列
您还需要将JScrollPane添加到GUI中,而不是JTextArea
此外,尽管空布局和setBounds()
或setSize(…)
和setLocation(…)
似乎是让新手们喜欢的最简单、最好的创建复杂GUI的方法,但您创建的GUI越多,在使用它们时会遇到越严重的困难。当GUI调整大小时,它们不会调整您的组件的大小,它们是一个需要增强或维护的皇家女巫,当它们放置在滚动窗格中时会完全失败,当在所有平台或屏幕分辨率与原始分辨率不同的情况下查看时,它们看起来非常糟糕
e、 g
我对你的代码做了不少修改。你的代码无法运行 这是我创建的GUI 如您所见,有一个垂直滚动条。滚动条的默认操作是,在用文本填充JTextArea之前,滚动条不会出现 以下是我对您的代码所做的重要更改
package com.ggl.testing;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class PracownikGui implements Runnable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new PracownikGui());
}
private JFrame frame;
private JPanel panelek;
private JTextArea tekscik;
private JScrollPane skrol;
@Override
public void run() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
panelek = new JPanel();
tekscik(panelek);
frame.setContentPane(panelek);
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
}
public void tekscik(JPanel panelek) {
tekscik = new JTextArea(2, 20);
tekscik.setEditable(true);
tekscik.setLineWrap(true);
skrol = new JScrollPane(tekscik);
panelek.add(skrol);
}
}
我对你的代码做了不少修改。你的代码无法运行 这是我创建的GUI 如您所见,有一个垂直滚动条。滚动条的默认操作是,在用文本填充JTextArea之前,滚动条不会出现 以下是我对您的代码所做的重要更改
package com.ggl.testing;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
public class PracownikGui implements Runnable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new PracownikGui());
}
private JFrame frame;
private JPanel panelek;
private JTextArea tekscik;
private JScrollPane skrol;
@Override
public void run() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
panelek = new JPanel();
tekscik(panelek);
frame.setContentPane(panelek);
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
}
public void tekscik(JPanel panelek) {
tekscik = new JTextArea(2, 20);
tekscik.setEditable(true);
tekscik.setLineWrap(true);
skrol = new JScrollPane(tekscik);
panelek.add(skrol);
}
}
您应该添加一些关于您正在编码的设备/系统的颜色。这是非常抽象的。你应该添加一些关于你正在编码的设备/系统的颜色。这是非常抽象的。