Tag: jscrollpane

如何使JScrollPane滚动以跟随输入焦点?

我有一个带有大面板的Swing应用程序,它包含在JScrollPane 。 用户通常通过Tab键在面板的子组件之间移动,因此当他们选择查看某些内容时,我希望滚动窗格自动滚动,以便具有输入焦点的组件始终可见。 我已经尝试使用KeyboardFocusManager来监听输入焦点的变化,然后调用scrollRectToVisible 。 这是一个显示我当前策略的SSCCE (只需复制/粘贴并运行!): import java.awt.KeyboardFocusManager; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.*; public class FollowFocus { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { final int ROWS = 100; final JPanel content = new JPanel(); content.setLayout(new BoxLayout(content, BoxLayout.Y_AXIS)); content.add(new JLabel( “Thanks for helping out. Use tab to […]

将JScrollPane添加到JTable组件

我正在尝试将JScrollPane添加到我的JTable ,但它似乎不起作用。 我有一个21行和5列的JTable ,我按照以下代码添加了一个JScrollPane … public Targy_felv() { JScrollPane scrollPane; JFrame frame = new JFrame(); frame.setVisible(true); frame.setSize(600, 300); table = new JTable(); Object o[] = new Object[]{“Tárgynév”, “Oktató”, “Kredit”, “Félév”, “Tárgykód”}; table.setModel(new DefaultTableModel(get_Tárgyak(), o)); scrollPane = new JScrollPane(); scrollPane.getViewport().add(table); frame.add(table); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } 有人可以帮我理解为什么滚动条没有出现。

使用JScrollPane自定义CellEditor – 开始编辑问题

我有一个JTable,它使用自定义CellEditor,在JScrollPane中使用JTextArea。 当我通过鼠标clic进入编辑模式时,它完美地工作。 但是,当我尝试在单元格聚焦时键入一些字母时,没有任何反应。 单元格获得“编辑模式样式”(背景更改),但保持空白… 任何的想法 ? public class MultiLineCellEditor extends DefaultCellEditor { JTextArea textArea; JScrollPane scrollPane; public MultiLineCellEditor( final JTable table ) { super( new JTextField() ); getComponent().setName( “Table.editor” ); setClickCountToStart( 2 ); textArea = new JTextArea(); scrollPane = new JScrollPane(); scrollPane.setViewportView( textArea ); editorComponent = scrollPane; }//end MultiLineCellEditor public Component getTableCellEditorComponent( JTable table, Object […]

JScrollPane.setviewportview与JScrollPane.add之间的区别

我今天遇到了这个新事物,我不知道为什么。 例如,当我想在面板中显示某些内容时,我只需将其添加到面板中; 但为什么我不能直接添加表格滚动窗格,为什么我必须调用setviewportview()方法? add()方法做了什么以及setViewProtView()做了什么?

Java:将滚动添加到文本区域

如何将滚动条添加到我的文本区域。 我试过这个代码,但它没有用。 middlePanel=new JPanel(); middlePanel.setBorder(new TitledBorder(new EtchedBorder(), “Display Area”)); // create the middle panel components display = new JTextArea(16, 58); display.setEditable(false); // set textArea non-editable scroll = new JScrollPane(display); scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); //Add Textarea in to middle panel middlePanel.add(scroll); middlePanel.add(display); 谢谢

将JPanel转换为JScrollPane中的图像

我想将JPanel转换为图像。 我使用以下方法: public BufferedImage createImage(){ int w = getWidth(); int h = getHeight(); BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); paint(g); return bi; } 但问题是JPanel包含在JScrollPane中。 因此,当我将jpanel转换为图像时,图像仅包含jpanel中可见的部分,并且隐藏在滚动窗格内部的部分不包含在图像中。 是否有任何解决方案可以将JPanel的全部内容转换为图像?

JScrollPane – 相对于鼠标位置进行缩放

我需要在放大图像时计算视口的新位置。 UI构建如下: ImagePanel绘制图像 ImagePanelWrapper是围绕imagePanel的JPanel JScrollPane包含ImagePanelWrapper 放大或缩小时,ImagePanel的缩放系数会发生变化,并且会重新计算ImagePanel的首选大小。 因此,即使ImagePanel停留在相同的视口点,此面板上的图像也会移动。 当用户按住CTRL并使用鼠标滚轮时,将调用以下方法。 给定的点是MouseWheelListener提供的光标位置。 通过这些方法的function,当放大或缩小时,图像已经停留在相同的左上角位置。 问题是我只是想弄清楚如何相对于鼠标移动,例如Paint.NET。 有任何想法吗? /** * */ public void zoomOut(Point point) { this.imagePanel.setZoom(this.imagePanel.getZoom() * 0.9f); Point pos = this.getViewport().getViewPosition(); int newX = (int) (pos.x * 0.9f); int newY = (int) (pos.y * 0.9f); this.getViewport().setViewPosition(new Point(newX, newY)); this.imagePanel.revalidate(); this.imagePanel.repaint(); } /** * */ public void zoomIn(Point point) { […]

Java JTable列标题未显示

嗨伙计们希望你能在这里帮助我,我的代码(逻辑方面)很好唯一的问题是列标题没有显示在2个表格中(表格和表格,一个用于教师,一个用于学生详细信息) )我怎么让他们表演? import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; public class Display { ArrayList stud1 = new ArrayList(); ArrayList sTeach1 = new ArrayList(); //For Display Teachers private JTable table; private JFrame f; private int i; //For DisplayStudents private JTable tableS; private JFrame fS; private int iS; //Displays Teachers public void displayTeachers() { […]

创建缩略图的正确方法是什么?

我正在尝试使用JScrollPane创建一些数据的缩略图,但我遇到了性能问题。 此示例包含大约100个缩略图,每个缩略图包含5000个样本。 当我尝试向下滚动并多次向上滚动时,滚动会发生延迟,CPU负载增加,应用程序内存使用量超过500 Mb。 有没有办法在不减少数据的情况下避免这种性能问题? import java.awt.Color; import java.awt.EventQueue; import java.awt.GridLayout; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.plot.ThermometerPlot; import org.jfree.data.general.DefaultValueDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; public class ThumbnailChartsTest extends JPanel { private static final int W = 200; private static final int H = W; […]

JScrollPane中JPanel上的JTextArea没有正确resize

我想实现以下目标: +——————Other container(s)—————–+ | +——JScrollPane (vertical)——-+ | | | JTextField | | | | Box.createRigidArea (vertical) | | | | JTextArea | | | | { etc.. any other J-component } | | | | | | | | | | | | | | | | | | | +———————————–+ | +—————————————————–+ 我能得到的最接近的是以下(伪)代码: JPanel […]