Tag: jscrollpane

如何重置JTable

我有一个关于JScrollPane和JTable 。 我已将JTable添加到JScrollPane ,并将JScrollPane添加到JPanel 。 当我点击“show”按钮时, JTable将填充数据库中的内容。 我还有另一个按钮reset ,点击它将删除JTable的内容和JScrollPane 。 它应该是这样做的,但是发生的是,即使在单击按钮之后, JTable和JScrollPane所有内容仍然存在。 我使用了revalidate() , reinstantiate()等,但没有用。 我如何使其工作?

MouseEvent在JScrollPane中丢失了

这是我用来显示我在另一个项目中遇到的问题的代码。 如果我使用JScrollPane作为panel2的包装器,我没有得到任何这样的行。 为什么? 我想点击JscrollPane并打印事件如下。 java.awt.event.MouseEvent[MOUSE_CLICKED,(800,469),absolute(808,499),button=1,modifiers=Button1,clickCount=1] on javax.swing.JPanel[,0,0,934×612,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.LineBorder@cc0e01,flags=9,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=880,height=630]] 如果现在我改变了 panel1.add(pane); 至 panel1.add(panel2); 然后打印上面的消息。 public class LostMouseEvent { public static void main(String[] args) { new LostMouseEvent(); } public LostMouseEvent() { EventQueue.invokeLater(new Runnable() { @Override public void run() { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); JScrollPane […]

使JFxtArea或JEditorPane在JFrame中可滚动

我一直在研究Swing,以便用Java构建一个css编辑器。 我一直试图在JTextArea中导出CSS和HTML(我将在创建.css文档之后。)这是我的主要布局在单击“Build”菜单项后调用的GridLayout。 package csseditor_gui_built; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JScrollPane; import javax.swing.JScrollBar; import javax.swing.text.DefaultCaret; import java.awt.Font; import java.awt.Color; public class ExportGridLayout extends JFrame { public ExportGridLayout(String HTML, String CSS){ GridLayout layout = new GridLayout(1,2,2,2); setLayout(layout); JTextArea textAreaHtml = new JTextArea(); JTextArea textAreaCss = new JTextArea(); //Creating a new font. Font fontumuz […]

JOptionPane和滚动function

我想在JOptionPane中列出很多结果,但是,如果结果太多,我不知道如何添加滚动函数。 如何向JOptionPane添加滚动条? 任何帮助都会很棒。 谢谢。

JScrollPane中JTextArea上的滚动条不起作用

我无法让JTextArea滚动。 我不知道你怎么会弄乱JScrollPane,但我似乎有,我只是看不到它。 这是一个更大的项目的一部分,但下面的代码是我如何创建一个JTextArea并将其添加到JScrollPane。 当您在文本区域的边缘外键入时,不会显示滚动条。 将垂直滚动条设置为始终打开会给出一个不执行任何操作的滚动条。 import javax.swing.*; import java.awt.*; public class TextAreaTest extends JFrame{ public TextAreaTest() { super(“Text Area Scroller”); Container c = getContentPane(); JTextArea textarea = new JTextArea(); textarea.setPreferredSize(new Dimension(300, 50)); textarea.setLineWrap(true); textarea.setText(“xx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\nxx\n”); JScrollPane scroller = new JScrollPane(textarea); c.add(scroller, BorderLayout.CENTER); pack(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String args[]){ TextAreaTest instance = new TextAreaTest(); instance.setVisible(true); […]

JTextArea中的换行导致JScrollPane与MiGLayout无关

我和这个家伙有同样的困难: 与linewrap = true一起使用时,MigLayout JTextArea不会缩小 我使用了其中一个答案中描述的解决方案; 明确设置最小大小。 如果将包含JTextArea的JPanel直接放在JFrame中,然后调整窗口大小,这可以正常工作。 但是,将包含JTextArea的面板放在JScrollPane中时,会再次出现同样的问题。 这是为什么,以及如何解决这个问题? 干杯 编辑:一个例子 public class MiGTest2 extends JFrame{ public MiGTest2(){ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(new MigLayout(“fillx, debug”, “[fill]”)); JTextArea textArea = new JTextArea(); textArea.setLineWrap(true); panel.add(textArea, “wmin 10”); //panel.add(new JTextField()); JScrollPane scrollPane = new JScrollPane(panel); //add(panel); add(scrollPane); pack(); } public static void main(String[] args){ new MiGTest2().setVisible(true); […]

Swing:创建一个显示其组件居中的JScrollPane?

如果创建一个视口大于JScrollPane组件的JScrollPane,它会在左上角显示该组件。 有没有办法改变这种行为,所以它显示组件居中? 以下示例程序。 澄清 : 我有一个组件有(宽度,高度)=(cw,ch)。 我有一个JScrollPane,其视口有(宽度,高度)=(vw,vh)。 组件可能变得更大或更小。 我想要一种方法来使用滚动条相对于视口的中心点定位组件的中心点,因此如果组件的一个或两个维度小于视口,则组件将显示在视口的中心。 默认的滚动窗格行为将组件的左上角相对于视口的左上角定位。 我要问的是如何改变参考点。 我不确定这对于默认的JScrollPane有多容易,所以如果它不容易,那么我将学习我能做什么,并想到一个不同的方法。 package com.example.test.gui; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSpinner; import javax.swing.SpinnerNumberModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class SimpleScroller extends JFrame { static class Thingy extends JPanel { private double size = 20.0; […]

水平滚动条在Java Swing中不能与JTable一起使用

我有一个JTable ,我在JScrollPane传递。 垂直滚动条显示正常,但水平滚动条不起作用。 我提供的代码是可编译的,只需将您的路径放在InputFile1字符串中并在该位置创建一个长文件。 我尝试了很多解决方案,但没有任何工作。 我有一个只有一列的表,该列包含文档中的行。 我需要垂直和水平滚动条。 请提出一些解决方案。 其他尝试: 案例1 : tab.setPreferredSize(new Dimension(400,400)); 如果我设置此项,垂直滚动条不起作用。 案例2: tab.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 如果我设置它,列宽会变得非常小。 如果我试图使它变大,那么它也不起作用,只显示水平滚动条但没有视口。 您可以取消注释并检查它们。 码: public class tablecreate extends JFrame implements ActionListener { JPanel mainPanel; tablecreate() throws IOException { mainPanel=new JPanel(); String InputFile1 = “/home/user/Desktop/a.txt”; BufferedReader breader1 = new BufferedReader(new FileReader(InputFile1)); String line1 = “”; line1 = breader1.readLine(); DefaultTableModel model1 […]

使JScrollPane自动向下滚动

我正在尝试使用JTextArea实现JScrollPane。 JTextArea被附加到,我希望JScrollPane在添加更多文本时继续向下滚动。 怎么能实现这一目标?

仅当附加文本时,JTextArea才会滚动到底部

我正在尝试创建一个JTextArea ,每次将文本追加到该文本区域时,它都会滚动到底部。 否则,用户应该能够滚动顶部并查看上一条消息。 我用过这段代码: JTextArea terminalText = new JTextArea(); JPanel terminal = new JPanel(); terminal.setLayout(new BorderLayout()); add(terminal); //Adds the terminal to mother JPanel //I added scrollbar to my JTextArea JScrollPane scroll = new JScrollPane(terminalText); terminal.add(scroll, BorderLayout.CENTER); scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scroll.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent e) { e.getAdjustable().setValue(e.getAdjustable().getMaximum()); }}); 到目前为止,每当我使用terminalText.append将某些内容添加到terminalText时,此代码似乎会使我的文本区域滚动到terminalText文本区域的底部。 但是,用户无法使用滚动条滚动到顶部以查看上一条消息。 有没有办法来解决这个问题? 我应该使用DocumentListener来实现这一目标吗?