- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 jscrollpane 中添加了一个 jtextarea,但我不知道为什么它不起作用!你能帮我吗?
问题是我的文本向下移动,但滚动在 GUI 中不起作用。
我上传了所有代码,因为您可以轻松运行它,只需创建一个主文件并设置其大小即可。您可以跟踪这些 Jscrollpane 的问题:jScrollPane1、jScrollPane16 jScrollPane4
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
public class Frame1 extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenuItem jMenuFileExit = new JMenuItem();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JToolBar jToolBar = new JToolBar();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
ImageIcon image1 = new ImageIcon(masterproject.Frame1.class.getResource(
"openFile.png"));
ImageIcon image2 = new ImageIcon(masterproject.Frame1.class.getResource(
"closeFile.png"));
ImageIcon image3 = new ImageIcon(masterproject.Frame1.class.getResource(
"help.png"));
JLabel statusBar = new JLabel();
JSplitPane jSplitPane1 = new JSplitPane();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
DynamicTree jtProjectList = new DynamicTree();
BorderLayout borderLayout2 = new BorderLayout();
JToolBar jToolBar1 = new JToolBar();
JToolBar jToolBar2 = new JToolBar();
JButton jbAdd = new JButton();
JButton jbRemove = new JButton();
int newNodeSuffix = 0;
JToolBar jToolBar3 = new JToolBar();
BorderLayout borderLayout3 = new BorderLayout();
JPanel jpCore = new JPanel();
JPanel jpExclusion = new JPanel();
JLabel jLabel1 = new JLabel();
JTextArea jTextArea1 = new JTextArea();
BorderLayout borderLayout4 = new BorderLayout();
JTable jTable1 = new JTable();
JPanel jpScope = new JPanel();
JLabel jLabel2 = new JLabel();
JTextArea jTextArea2 = new JTextArea();
JTable jTable2 = new JTable();
BorderLayout borderLayout5 = new BorderLayout();
VerticalFlowLayout verticalFlowLayout1 = new VerticalFlowLayout();
JPanel jpDeliverable = new JPanel();
JTable jTable3 = new JTable();
JLabel jLabel3 = new JLabel();
JTextArea jTextArea3 = new JTextArea();
BorderLayout borderLayout6 = new BorderLayout();
JPanel jpAcceptance = new JPanel();
JPanel jpConstraints = new JPanel();
JPanel jpAssumption = new JPanel();
JPanel jpRisk = new JPanel();
BorderLayout borderLayout7 = new BorderLayout();
BorderLayout borderLayout8 = new BorderLayout();
BorderLayout borderLayout9 = new BorderLayout();
JTable jTable4 = new JTable();
JTable jTable5 = new JTable();
JTable jTable6 = new JTable();
JLabel jLabel4 = new JLabel();
JLabel jLabel5 = new JLabel();
JLabel jLabel6 = new JLabel();
JTextArea jTextArea4 = new JTextArea();
JTextArea jTextArea5 = new JTextArea();
JTextArea jTextArea6 = new JTextArea();
JLabel jLabel7 = new JLabel();
JTextArea jTextArea7 = new JTextArea();
JTable jTable7 = new JTable();
BorderLayout borderLayout10 = new BorderLayout();
JScrollPane jScrollPane1 = new JScrollPane();
JScrollPane jScrollPane2 = new JScrollPane();
JScrollPane jScrollPane3 = new JScrollPane();
JScrollPane jScrollPane4 = new JScrollPane();
JScrollPane jScrollPane5 = new JScrollPane();
JScrollPane jScrollPane6 = new JScrollPane();
JScrollPane jScrollPane7 = new JScrollPane();
JScrollPane jScrollPane8 = new JScrollPane();
JScrollPane jScrollPane9 = new JScrollPane();
JScrollPane jScrollPane10 = new JScrollPane();
JScrollPane jScrollPane11 = new JScrollPane();
JScrollPane jScrollPane12 = new JScrollPane();
JScrollPane jScrollPane13 = new JScrollPane();
JScrollPane jScrollPane14 = new JScrollPane();
JScrollPane jScrollPane15 = new JScrollPane();
JScrollPane jScrollPane16 = new JScrollPane();
public Frame1() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
this.setFont(new java.awt.Font("Tahoma", Font.BOLD, 14));
setSize(new Dimension(753, 483));
setTitle("Master Project");
statusBar.setText(" ");
jMenuFile.setText("File");
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(new Frame1_jMenuFileExit_ActionAdapter(this));
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(new
Frame1_jMenuHelpAbout_ActionAdapter(this));
jPanel1.setLayout(borderLayout2);
jbAdd.setMaximumSize(new Dimension(51, 25));
jbAdd.setPreferredSize(new Dimension(51, 25));
jbAdd.setText("Add");
jbAdd.addActionListener(new Frame1_jbAdd_actionAdapter(this));
jbRemove.setText("Remove");
jbRemove.addActionListener(new Frame1_jbRemove_actionAdapter(this));
contentPane.setMinimumSize(new Dimension(400, 600));
contentPane.setPreferredSize(new Dimension(400, 600));
jSplitPane1.setMinimumSize(new Dimension(200, 55));
jSplitPane1.setPreferredSize(new Dimension(200, 355));
jSplitPane1.setLastDividerLocation(300);
jtProjectList.setPreferredSize(new Dimension(200, 324));
jPanel2.setLayout(borderLayout3);
jLabel1.setText("Exclusion :");
jTextArea1.setPreferredSize(new Dimension(280, 60));
jTextArea1.setText("jTextArea1");
jTextArea1.setLineWrap(true);
jpExclusion.setLayout(borderLayout4);
jLabel2.setText("Scope :");
jTextArea2.setPreferredSize(new Dimension(280, 60));
jTextArea2.setText("jTextArea1");
jTextArea2.setLineWrap(true);
jpScope.setLayout(borderLayout5);
jpCore.setLayout(verticalFlowLayout1);
jLabel3.setText("Deliverable :");
jTextArea3.setPreferredSize(new Dimension(280, 60));
jTextArea3.setText("jTextArea3");
jTextArea3.setLineWrap(true);
jpDeliverable.setLayout(borderLayout6);
jpAssumption.setLayout(borderLayout7);
jpConstraints.setLayout(borderLayout8);
jpAcceptance.setLayout(borderLayout9);
jLabel4.setText("Assumption :");
jLabel5.setText("Constraints :");
jLabel6.setText("Acceptance :");
jTextArea4.setMinimumSize(new Dimension(80, 18));
jTextArea4.setPreferredSize(new Dimension(280, 60));
jTextArea4.setText("jTextArea4");
jTextArea4.setLineWrap(true);
jTextArea5.setMinimumSize(new Dimension(80, 18));
jTextArea5.setPreferredSize(new Dimension(280, 60));
jTextArea5.setText("jTextArea5");
jTextArea5.setLineWrap(true);
jTextArea6.setMinimumSize(new Dimension(80, 18));
jTextArea6.setPreferredSize(new Dimension(280, 60));
jTextArea6.setText("jTextArea6");
jTextArea6.setLineWrap(true);
jpScope.setToolTipText("");
jLabel7.setText("Risk :");
jTextArea7.setPreferredSize(new Dimension(280, 60));
jTextArea7.setText("jTextArea7");
jTextArea7.setLineWrap(true);
jpRisk.setLayout(borderLayout10);
jpRisk.setMinimumSize(new Dimension(280, 60));
jScrollPane6.setPreferredSize(new Dimension(284, 44));
jScrollPane16.setPreferredSize(new Dimension(284, 44));
jScrollPane5.setPreferredSize(new Dimension(284, 44));
jScrollPane7.setPreferredSize(new Dimension(284, 44));
jScrollPane14.setPreferredSize(new Dimension(284, 44));
jScrollPane12.setPreferredSize(new Dimension(284, 44));
jScrollPane10.setPreferredSize(new Dimension(284, 44));
jScrollPane3.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane9.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane11.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane13.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane8.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane4.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane15.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
jMenuBar1.add(jMenuFile);
jMenuFile.add(jMenuFileExit);
jMenuBar1.add(jMenuHelp);
jMenuHelp.add(jMenuHelpAbout);
setJMenuBar(jMenuBar1);
jButton1.setIcon(image1);
jButton1.setToolTipText("Open File");
jButton2.setIcon(image2);
jButton2.setToolTipText("Close File");
jButton3.setIcon(image3);
jButton3.setToolTipText("Help");
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
contentPane.add(statusBar, BorderLayout.SOUTH);
contentPane.add(jSplitPane1, java.awt.BorderLayout.CENTER);
jSplitPane1.add(jPanel1, JSplitPane.LEFT);
jSplitPane1.add(jPanel2, JSplitPane.RIGHT);
jToolBar1.add(jtProjectList);
jPanel1.add(jToolBar1, java.awt.BorderLayout.CENTER);
jPanel1.add(jToolBar2, java.awt.BorderLayout.NORTH);
jToolBar2.add(jbAdd);
jToolBar2.add(jbRemove);
jPanel2.add(jToolBar3, java.awt.BorderLayout.CENTER);
jToolBar3.add(jScrollPane3);
jScrollPane3.getViewport().add(jpCore);
jpScope.add(jScrollPane1, java.awt.BorderLayout.CENTER);
jScrollPane1.getViewport().add(jTextArea2);
jScrollPane16.getViewport().add(jTable1);
jScrollPane14.getViewport().add(jTable5);
jScrollPane12.getViewport().add(jTable6);
jScrollPane10.getViewport().add(jTable7);
jScrollPane8.getViewport().add(jTextArea4);
jScrollPane6.getViewport().add(jTable2);
jScrollPane5.getViewport().add(jTable3);
jScrollPane4.getViewport().add(jTextArea3);
contentPane.add(jToolBar, java.awt.BorderLayout.NORTH);
jpDeliverable.add(jScrollPane4, java.awt.BorderLayout.CENTER);
jpDeliverable.add(jScrollPane5, java.awt.BorderLayout.SOUTH);
jpDeliverable.add(jLabel3, java.awt.BorderLayout.NORTH);
jpScope.add(jScrollPane6, java.awt.BorderLayout.SOUTH);
jpScope.add(jLabel2, java.awt.BorderLayout.NORTH);
jScrollPane7.getViewport().add(jTable4);
jpAcceptance.add(jLabel6, java.awt.BorderLayout.NORTH);
jScrollPane9.getViewport().add(jTextArea7);
jpRisk.add(jScrollPane10, java.awt.BorderLayout.SOUTH);
jpRisk.add(jScrollPane9, java.awt.BorderLayout.CENTER);
jpRisk.add(jLabel7, java.awt.BorderLayout.NORTH);
jScrollPane11.getViewport().add(jTextArea6);
jpAssumption.add(jLabel4, java.awt.BorderLayout.NORTH);
jpAssumption.add(jScrollPane12, java.awt.BorderLayout.SOUTH);
jpAssumption.add(jScrollPane11, java.awt.BorderLayout.CENTER);
jScrollPane13.getViewport().add(jTextArea5);
jpConstraints.add(jLabel5, java.awt.BorderLayout.NORTH);
jpConstraints.add(jScrollPane14, java.awt.BorderLayout.SOUTH);
jpConstraints.add(jScrollPane13, java.awt.BorderLayout.CENTER);
jScrollPane15.getViewport().add(jTextArea1);
jpExclusion.add(jLabel1, java.awt.BorderLayout.NORTH);
jpExclusion.add(jScrollPane16, java.awt.BorderLayout.SOUTH);
jpExclusion.add(jScrollPane15, java.awt.BorderLayout.CENTER);
jpAcceptance.add(jScrollPane8, java.awt.BorderLayout.CENTER);
jpAcceptance.add(jScrollPane7, java.awt.BorderLayout.SOUTH);
jpCore.add(jpScope, 0);
jpCore.add(jpExclusion, 1);
jpCore.add(jpDeliverable, 2);
jpCore.add(jpAcceptance, 3);
jpCore.add(jpConstraints, 4);
jpCore.add(jpAssumption, 5);
jpCore.add(jpRisk, 6);
jSplitPane1.setDividerLocation(230);
}
/**
* File | Exit action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuFileExit_actionPerformed(ActionEvent actionEvent) {
System.exit(0);
}
/**
* Help | About action performed.
*
* @param actionEvent ActionEvent
*/
void jMenuHelpAbout_actionPerformed(ActionEvent actionEvent) {
Frame1_AboutBox dlg = new Frame1_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
(frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.setVisible(true);
}
public void jbRemove_actionPerformed(ActionEvent actionEvent) {
jtProjectList.removeCurrentNode();
}
public void jbAdd_actionPerformed(ActionEvent actionEvent) {
String response = "";
while(response.trim().equals("")){
response = JOptionPane.showInputDialog(this,
"Please enter name of node?",
"Enter your name",
JOptionPane.QUESTION_MESSAGE);
//System.out.println(response);
if( response != null && response.trim().equals(""))
JOptionPane.showMessageDialog(this,"Please enter valid name",
"Error",JOptionPane.ERROR_MESSAGE);
}
jtProjectList.addObject(response);
}
}
class Frame1_jbAdd_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jbAdd_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jbAdd_actionPerformed(actionEvent);
}
}
class Frame1_jbRemove_actionAdapter implements ActionListener {
private Frame1 adaptee;
Frame1_jbRemove_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jbRemove_actionPerformed(actionEvent);
}
}
class Frame1_jMenuFileExit_ActionAdapter implements ActionListener {
Frame1 adaptee;
Frame1_jMenuFileExit_ActionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuFileExit_actionPerformed(actionEvent);
}
}
class Frame1_jMenuHelpAbout_ActionAdapter implements ActionListener {
Frame1 adaptee;
Frame1_jMenuHelpAbout_ActionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent actionEvent) {
adaptee.jMenuHelpAbout_actionPerformed(actionEvent);
}
}
最佳答案
我相信你的代码如此困惑的原因是因为它是由一些 GUI 构建器自动生成的。由于组件数量众多且界面复杂,您可能需要手动编写。这里必须存在某种模式,您可以利用它来减少代码量并使其更易于理解和维护。
除此之外,我认为问题可能在于组件“添加”到 JScrollPane
的方式。您使用过
jScrollPaneX.getViewport().add(comp);
这不是将 View 分配给滚动 Pane 的常用方法。标准方法是在构造时选择 View 组件,例如通过调用
jScrollPanex = new JScrollPane(comp)
或者如果您需要稍后设置,请调用
jScrollPaneX.setViewportView(comp)
。
(在内部,这会调用 getViewport().setView(view)
,这与您的操作方式类似,但不一样。)
关于java - java中jscrollpane的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5282059/
我有一个 JScrollPane,它的内容 Pane 有一个 JPanel。我向该 JPanel 添加了较小的 JPanel,正如预期的那样,如果我添加太多 JPanel,将会出现一个垂直滚动条。 问
我正在尝试在另一个 JScrollPane 中添加一个 JScrollPane。内部 JScrollPane 只会水平滚动,外部只会垂直滚动。 在这张图中,您可以看到添加 mainPanel 时水平滚
我正在尝试创建一个带有滚动条的容器,并且容器内部有两个内部面板。顶部内面板内还有另一个 JScrollPane。 但目前我遇到的问题是,当我的顶部内面板太长(宽度)时,顶部内面板内的滚动条被禁用,我只
你们能让我知道禁用水平滚动条的最佳方法是什么吗? 我有 宽度:100% 和 高度:280px 的 div。当我们有很长的连续文本(没有任何空格)时,我们会显示一个水平滚动条。 顺便说一句,我正在使用
我注意到这个问题主要出现在 OS 10.5.8 上的 Firefox 3.6.6 上,Safari 上偶尔也会出现这种情况(准备好惊讶的表情 - IE 实际上每次都工作正常 - 什么?!)。 我的网址
所以我有一堆JTable。每个JTable 都位于JScrollPane 内。然后,我将每个 JScrollPane 添加到 JPanel 中。然后,我将此 JPanel 添加到 JScrollPan
我在 JScrollPane 上放置了多个 JPanel。现在我有了它,所以如果你的鼠标在框架之外,那么它就不会拖动 JPanels。 当我在一个方向上移动组件时,我需要让它滚动。 (例如,如果我
有什么区别 JScrollPane.getViewportBorderBounds() and JScrollPane.getViewport() and JscrollPane.getVisible
此应用程序适用于触摸屏。我只需要仅当用户触摸 JScrollPane 区域时 JScrollPane 的滚动条可见。 我是 GUI 和 swing 的新手。这会很有帮助,我不明白是什么,或者如果在其他
出于布局目的,我需要在滚动内容底部和容器底部之间放置 15px 的空间:div class="scroll-pane" . 造型容器 .scroll-pane { padding-bottom:15p
我需要一个可以显示很多图像的程序,并且我需要一个可以滚动的窗口。我阅读了文档并在论坛上进行了搜索,但仍然没有成功。我尝试使用 JScrollPane 和 JFrame,如下所示。 JScrollPan
我今天遇到了这个新事物,但我不知道为什么。例如,当我想在面板中显示某些内容时,我只需将其添加到面板即可;但为什么我不能直接添加表格到滚动 Pane ,为什么我必须调用 setviewportview(
我今天遇到了这个新事物,我不知道为什么。例如,当我想在面板中显示某些内容时,我只需将其添加到面板即可;但是为什么我不能直接添加表格到滚动 Pane ,为什么我必须调用 setviewportview(
我一直在尝试缩小 JScrollPane 的内容宽度,例如。我已将 HorizontalScrollBarPolicy 设置为 NEVER,但这最终导致没有 ScrollBar 出现并且内容不再显
所以,在下面的代码中,我在左侧有一个 JTextArea。右上角的 JScrollPane 看起来不错。使用相同的代码,我还在右下侧添加了一个 JScrollPane,但是尽管代码相同,但保存了首选大
我在 div 上使用 JScrollPane 来滚动它。 div 包含一个自写的 javascript 代码,它从我的 tumblr 提要中获取最后几篇文章。但是,即使滚动 Pane 显示正常,但由于
请看下面的代码块 import java.awt.Color; import java.awt.Dimension; import javax.swing.JFrame; import javax.s
我在 Swing 中制作了一个简单的 GUI,其中在 JScrollPane 内、JSPlitPane 内、JPanel 内、....在 JFrame 内有一个大 JPanel(显示大 Buffere
我有一个带滚动条的 JPanel,我想向它添加很多 JLabel。但是滚动条不起作用。我无法使用滚动条,即使面板已满,它也不会滚动。这是我的代码: import java.awt.*; import
我正在尝试在 JScrollPane 中添加 2 个图像。第一个图像是背景,第二个图像与第一个图像重叠。当我运行我的程序时,问题只显示第二张图像! 请帮忙 ImageIcon ii = new Ima
我是一名优秀的程序员,十分优秀!