Tag: jscrollpane

如何在Borderlayout的.CENTER中创建组件占用所有中心空间并使用应用程序resize?

我的app / JFrame,使用Borderlayout,在顶部或北部有一个工具栏,底部或南部有一个状态栏,中间有一个JPanel.JTabbedPane.JScrollPane.JTable。 JPanel总是一个固定的大小,可以使用各种组合应用的各种set * Size()方法对各种组件进行粗略调整。 但它始终是一个固定的大小,并始终有东西差距。 北部和南部组件保持固定高度,并按照预期水平resize。 当然,这不是一个新的或独特的设计。 这是正常的行为吗? 我错过了一些技巧吗?

将视口移动到更大的图像上; JLablel + JScrollPane的

我有一个JScrollPane m_jScrollPane ,里面显示了一个JLabel m_jlImage 。 m_jlImage是一个屏幕截图,在用户最后点击屏幕的位置绘制了一个红点。 我希望移动(读取滚动) m_jScrollPane的查看区域在m_jScrollPane上的红点上。 lastClick是用户单击的最后一个位置,与m_jlImage位于相同的坐标中。 事实certificate这比我想象的要困难得多。 我决定将点击点的值与屏幕的整个长度的比率沿同一轴线进行比较,然后按相应的最大比例滚动相应的滚动条。 这似乎只有在屏幕上最后点击的点位于左上角时才有效。 当点击的点位于屏幕边缘时,我不确定如何处理这种情况。 此方案生成一个比率,导致滚动条以相同的比例滚动,但红点滚动到视图之外,因为它位于屏幕的边缘。 关于我怎么能得到这个的任何建议? public void scrollViewToLastClick() { int clckH = lastClick.y; int clckW = lastClick.x; int picH = this.m_jlImage.getHeight(); int picW = this.m_jlImage.getWidth(); int ratW = (int)(m_jScrollPane.getWidth()*(double)clckW/(double)picW); int ratH = (int)(m_jScrollPane.getHeight()*(double)clckH/(double)picH); m_jScrollPane.getHorizontalScrollBar().setValue(ratW); m_jScrollPane.getVerticalScrollBar().setValue(ratH); }

将Graphics2d调整为JScrollPane

关于问题调整组件大小而不重新绘制是我的问题如何在窗体中创建可修改的自定义Graphics2d import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ZoomWithSelectionInViewport implements MouseWheelListener { private JComponent b; private int hexSize = 3; private int zoom = 80; private JScrollPane view; public ZoomWithSelectionInViewport() throws Exception { b = new JComponent() { private static final long serialVersionUID = 1L; @Override public Dimension getPreferredSize() { return new Dimension(700, 700); […]

在Java中创建动画JScrollPane的简单方法?

我目前有一个JScrollPane,它包含基本上是一个项目列表。 此JScrollPane将显示在信息屏幕上。 我正在寻找的是使它以给定的间隔自动滚动到列表底部的某种方式,然后回到顶部。 我认识到使用JScrollPane可能无法实现这一点,因此任何替代方案的建议都会很棒!

Jtable不刷新/更新数据

我有JTable / JScrollPane的问题。 我的数据表没有刷新/更新。 我正在使用DefultTableModel并根据代码一切正常,我没有任何错误。 此外,我有一个分页表,这就是为什么我使用动作监听器和按钮“prev”和“next”。 我从其他函数传递到函数,该函数在JTable类中编码。 问题是我填充了包含表数据的数组,但表不会更新/刷新它。 这是我的代码。 谢谢你。 BIG EDIT旧代码已被删除。 我添加了新的代码,可以帮助你们/女孩了解我的问题。 希望这会有所帮助。 问候。 这里首先是显示gui的类: import javax.swing.*; public class Glavni { public static void main(String[] args) { // TODO Auto-generated method stub SwingUtilities.invokeLater(new Runnable() { public void run() { gui Scanner = new gui(); Scanner.setVisible(true); } }); } } 第二个是将String传递给包含jtable的gui类的类 public class passDatatoTable { […]

如何在JTable上添加图像背景,滚动JTable时不滚动

我需要在我的JTable后面添加一个图像背景,滚动我的JTable时不应该缩小。 目前我添加了一个Image behing my JTable。 使用绘画方法。 public void paint(Graphics g) { // First draw the background image – tiled Dimension d = getSize(); for (int x = 0; x < d.width; x += image.getIconWidth()) for (int y = 0; y < d.height; y += image.getIconHeight()) g.drawImage(image.getImage(), x, y, null, null); // Now let the regular […]

当滚动条出现时,JScrollPane会调整包含JPanel的大小

在我的Java应用程序中使用JScrollPane时遇到一个小问题。 我有一个包含JPanel的JScrollPane 。 这个JPanel是使用可以是任何宽度的按钮(垂直排序)动态更新的。 JPanel自动将其宽度调整为内部最大的JButton组件。 现在当出现垂直滚动条时,它会占用我JPanel右侧的一些空间,这会导致最大的按钮不能完全显示。 除了显示整个按钮之外,我不想使用水平滚动条。 当滚动条出现时,有没有办法调整我的JPanel大小,所以它在我的按钮旁边显示得很好? 或者还有其他方法可以让我的JPanel旁边显示滚动条吗? 提前致谢! 编辑 :这是我的问题的演示。 当您将窗口调整到较小的高度时,右侧的一小部分按钮会被覆盖。 import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import java.awt.GridLayout; /** * @author Dylan Kiss */ public class Demo { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { […]

在JScrollPane中的JEditorPane中包装HTML文本

在一个应用程序中,我使用不可编辑的JEditorPanes作为一种通用的UI小部件,它可以显示一些复杂的内容(HTML将起作用),包装文本行和捕获鼠标点击。 不确定JEditorPane是否是一个很好的选择,所以请随意提出替代方案。 以下示例代码运行良好: import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import javax.swing.JEditorPane; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.ScrollPaneConstants; public class Main { private static JPanel createPanel() { JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); for (int i = 0; i < 3; i++) { JEditorPane editorPane = new JEditorPane(); editorPane.setEditable(false); editorPane.setContentType("text/html"); String text = "This is […]

JScrollPane和JList自动滚动

我有下一个代码: listModel = new DefaultListModel(); listModel.addElement(dateFormat.format(new Date()) + “: Msg1”); messageList = new JList(listModel); messageList.setLayoutOrientation(JList.VERTICAL); messageScrollList = new JScrollPane(messageList); messageScrollList.setPreferredSize(new Dimension(500, 200)); messageScrollList.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent e) { e.getAdjustable().setValue(e.getAdjustable().getMaximum()); } }); 它会自动向下滚动。 但是,如果我尝试向上滚动以重新阅读邮件,则会强制向下滚动。 我怎样才能解决这个问题?

如何创建JTable,其中第一列始终位于JScrollPane视口中?

在JScrollPane中设置表的最佳方法是什么,使得第一列始终在屏幕上的相同位置,而不管水平滚动和重叠列在下面? 当滚动条位于最左侧时,列看起来正常,但是当用户向右滚动时,辅助列(2和on)在第一列下方移动,直到最后一列出现在视口的最右侧? 我从Eckstein的“Java Swing”一书中找到了一个样本,但是它不允许调整第一列的大小。 我在想一些方案,其中一个JPanel持有一个水平结构,一个表保存辅助列,另一个JPanel浮动在它们上面(无论滚动如何都是固定的)。 结构将是在第一列浮动时保持视口范围不变。 理想情况下,我可以使用相同的模型使用两个表,但我不确定整个想法是否是一个天真的解决方案。 理想情况下,我喜欢一种设置,其中多个表垂直位于同一个滚动窗口上,其中所有第一列都对齐并一起移动,各个表之间只有很小的水平间隙。