标签: jscrollpane

如何将滚动条添加到面板?

我需要帮助。我有一个面板,它的宽度可能需要 1000 像素。我需要添加许多不同大小的按钮(我添加了流布局并且它工作正常)。问题是我在屏幕示例上的高度为 500 像素,但是当我添加按钮面板时,它的尺寸更大。如何将滚动条添加到面板?

java swing jpanel jscrollpane jscrollbar

0
推荐指数
1
解决办法
6738
查看次数

JScrollPane 问题

我制作了一个带有滚动窗格的程序,但它不起作用。请看源码:

JInfoView.java

package view;
import javax.swing.*;
import java.util.*;
import java.awt.*;
public class JInfoView extends JPanel {
    private JButton button = new JButton("ADD");
    private JButton buttonDelete = new JButton("DEL");
    private JTextField input = new JTextField("Text", 5);
    private JLabel label = new JLabel("Test");
    public JInfoView() {
        this.setLayout(new FlowLayout());
        this.add(button);
        this.add(buttonDelete);
        this.add(input);
        this.add(label);
    }
}
Run Code Online (Sandbox Code Playgroud)

JMainView.java

package view;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import view.JInfoView;

public class JMainView extends JFrame {
    private JPanel mypanel = new JPanel(new GridLayout(0, 1, 30, 50));
    private …
Run Code Online (Sandbox Code Playgroud)

java layout swing jscrollpane

0
推荐指数
1
解决办法
2703
查看次数

Swing:JScrollPane导致渲染问题

有时(并非总是)在滚动我的JScrollPane栏时,一些组件(通常是像JLabel这样的文本)不能正确重新绘制,它们最终只是部分渲染.

我不知道为什么会这样.我已经尝试在AdjustmentListener中调用paint(),但这似乎没有帮助.

有任何想法吗?

编辑:组件的初始化

    panel = new JPanel();
    ImageIcon img = new ImageIcon("editor.png");
    setIconImage(img.getImage());
    initComponents();

    final JScrollPane pane = new JScrollPane(panel);
    this.setContentPane(pane);
    //pane.setLayout(new ScrollPaneLayout());
    //pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    Dimension dim = panel.getSize();
    dim.height = dim.height - 100;
    pane.setSize(dim);
    this.setSize(dim);
    AdjustmentListener hListener = new AdjustmentListener() {
        @Override
        public void adjustmentValueChanged(AdjustmentEvent e) {
            repaint();
            for(Component c : panel.getComponents())
                c.repaint();
            for(Component c : pane.getComponents())
                c.repaint();
            panel.repaint();
            panel.revalidate();
            pane.repaint();
            pane.revalidate();
        }
    };
    pane.getVerticalScrollBar().addAdjustmentListener(hListener);
    panel.setVisible(true);
    pane.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane

0
推荐指数
1
解决办法
1056
查看次数

列名未显示在Jtable中

可能重复:
JTable不会显示列标题
如何查看JTable中的列标签?

我正在使用swing创建用户注册表单.某些标签显示不正确,也不显示列名.

以下是我的代码:

import java.awt.EventQueue;

import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import javax.swing.JTextField;
import java.awt.Insets;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JCheckBox;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.LayoutStyle.ComponentPlacement;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.Window.Type;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JScrollBar;
import java.awt.Scrollbar;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.ListSelectionModel;


public class UserRegistration {

    private …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jscrollpane jtableheader

0
推荐指数
1
解决办法
7165
查看次数

滚动到 JScrollPane 内的顶部 JPanel

我知道很多人问过这个问题,但我仍然无法解决这个问题。我在 JScrollPane 中有一个 JPanel。JPanel 包含六个动态加载的面板。加载面板后,系统会垂直自动滚动到面板的中间。我必须避免这种情况,所以我尝试了这个:

panel.scrollRectToVisible(scrollPane.getBounds());
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我的scrollPane就是这样创建的

JScrollPane scrollPane= new JScrollPane();
scrollPane.setBounds(panel.getBounds());
scrollPane.setViewportView(panel);
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

java swing scroll jpanel jscrollpane

0
推荐指数
1
解决办法
1072
查看次数

无法将JScrollBar/JScrollPane添加到此JTextPane

好的,所以这里是我的代码片段,其中包含问题:

private JTextField userText;
private ObjectOutputStream output;
private ObjectInputStream input;
private ServerSocket server;
private Socket connection;
private JTextPane images;
private JScrollPane jsp = new JScrollPane(images); 

public Server(){
   super(name+" - IM Server");
  images = new JTextPane();
  images.setContentType( "text/html" );
  HTMLDocument doc = (HTMLDocument)images.getDocument();
  userText = new JTextField();
  userText.setEditable(false);
  userText.addActionListener(
     new ActionListener(){
        public void actionPerformed(ActionEvent event){
           sendMessage(event.getActionCommand());
           userText.setText("");
        }
     }
  );
  add(userText, BorderLayout.NORTH);
  add(jsp);
  add(images, BorderLayout.CENTER);
  images.setEditable(false);
  try {
    doc.insertString(0, "This is where images and text will show up.\nTo send an image, …
Run Code Online (Sandbox Code Playgroud)

java swing jtextpane jscrollpane

0
推荐指数
1
解决办法
90
查看次数

无法在动态创建的JTable中看到列

我有一个动态创建和填充的表.单击其他表单中的按钮时会显示此动态表单.这是代码:

package ExaData;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.text.NumberFormat;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.StackedBarRenderer;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.RefineryUtilities;

public class ShowGraph extends javax.swing.JFrame {


String[][] data;
String[] columns={"Tan?m","De?er"};

 Sessionn obj;
  String SGA="SGA";
  String PGA="PGA";
  String JAVAPOOL="JAVAPOOL";
   JCheckBox SGA_CHECK;
    JCheckBox PGA_CHECK;
    JCheckBox JAVA_POOL_CHECK;
     JTable table;
     JPanel btnPanel,tblPanel;
    ChartPanel …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jscrollpane

0
推荐指数
1
解决办法
114
查看次数

使 JScrollPane 控制多个组件

对于我的应用程序,我正在设计一个脚本编辑器。目前我有一个JPanel包含另一个JPanel保存行号(位于左侧)和一个JTextArea用于允许用户输入他们的代码(位于右侧)。

目前,我已经实现了JScrollPaneJTextArea允许用户通过滚动他们的代码。

对于JPanel包含行号的行号,每次用户按下回车键时它们都会增加。

但是,问题是我想要相同的 JScrollPane(在 上实现的JTextArea)来控制行号 JPanel 的滚动;即当用户在 JTextArea 上滚动时,行号 JPanel 也应该滚动。但是由于行号保存在 JPanel 中,我无法将该组件添加到 JTextArea。

包含 JTextArea 和行号 JPanel 的 JPanel 类的构造函数:

private ScriptEditor() {

    setBackground(Color.WHITE);

    lineNumPanel = new LineNumberPanel();

    scriptArea = new JTextArea();
    scriptArea.setLineWrap(true);
    scriptArea.setFont(new Font(Font.SANS_SERIF, Font.PLAIN, 15));
    scriptArea.setMargin(new Insets(3, 10, 0, 10));

    JScrollPane scrollPane = new JScrollPane(scriptArea);
    scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    scrollPane.setPreferredSize(new Dimension(width, height));

    scriptArea.addKeyListener(this);

    add(lineNumPanel);
    add(scrollPane);
}
Run Code Online (Sandbox Code Playgroud)

行号 JPanel 的构造函数,它在自身中添加 JLabels 来表示行号:

public LineNumberPanel() {

    setPreferredSize(new …
Run Code Online (Sandbox Code Playgroud)

java swing jscrollpane jtextarea

0
推荐指数
1
解决办法
1620
查看次数

如何从 JTable 底部删除多余的空白?

我编写了一个简单的程序来创建一个空的 JTable。但是当我显示表格时,表格下方会出现一个额外的空白。现在我想删除表格行下方的空白。

JTable 程序:

public class Table extends JFrame {

Table() 
{
      int numColoumns=5;
      int numRows=10 ;
      String[] colHeadings = {"COLUMN1","COLUMN2","COLUMN3","COLUMN4","COLUMN5"};

      DefaultTableModel model = new DefaultTableModel(numRows, numColoumns) ;
      model.setColumnIdentifiers(colHeadings);

      JTable table = new JTable(model);
      JTableHeader head = table.getTableHeader();

      Container c = getContentPane();
      c.setLayout(new BorderLayout());
      c.add("North", head);
      c.add("Center",table);
}       
public static void main(String[] args) throws NumberFormatException, IOException
{
    Table t = new Table();
    t.setSize(500,400);
    t.setVisible(true);
    t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}}
Run Code Online (Sandbox Code Playgroud)

程序给了我一个表格,但行没有完全填满窗口。它显示了一个窗口,具有给定的高度和宽度(以像素为单位)以及相应的行数。在创建的行下方,它显示了一个额外的空间,因为这些行没有填充到窗口中。任何人都可以帮助我从窗口中删除多余的空间。

抱歉,我创建了输出图像,但上传图像时出现问题。

java swing jtable jscrollpane

0
推荐指数
1
解决办法
1624
查看次数

如何在Java Swing中将ScrollBar添加到JTextArea?

任何人都帮助我如何JTextArea使用Swing in Java 添加滚动条?

JTextArea刚消失的时候我添加滚动条就可以了.

希望有人让我在上面添加一个垂直滚动条.

另外的解释将非常感谢

public class Practice extends JFrame {
    JFrame frame = new JFrame("AAA");

    JTextArea textarea = new JTextArea();
    JScrollPane scroll = new JScrollPane(textarea);
    JPanel panelForScroll = new JPanel(null);

    public Practice(){
        frame.setLayout(null);
        frame.setBounds(100,100,400,710);
        frame.setResizable(false);
        frame.setVisible(true);

        textarea.setEditable(false);
        textarea.setFont(new Font("arian", Font.BOLD, 16));
        textarea.setBounds(20, 280, 340, 70);

        panelForScroll.add(scroll);
        frame.add(panelForScroll); //can't find text area....
    }

    public static void main(String[] args) {
        new Practice();
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing scrollbar jscrollpane jtextarea

-1
推荐指数
1
解决办法
7346
查看次数