- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
只是想在屏幕上画一些线。
或者至少我认为。 Swing 是一种不直观的古怪行为。我会使用 AWT,但我需要 Swing 提供的特异性。无论如何,代码。它只是一个分割 Pane ,实际上正在显示 - 可调整大小和所有内容 - 但顶部 Pane 的内容(我尝试在其中放入任何内容的唯一一个)没有显示。
package derange;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.*;
public class Derange {
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("Derange");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Display the window.
frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
frame.pack();
frame.setVisible(true);
//Create a split pane with the two scroll panes in it.
PanelScore scorePane = new PanelScore();
JScrollPane instrumentPane = new JScrollPane();
JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
scorePane, instrumentPane);
splitPane.setOneTouchExpandable(true);
splitPane.setDividerLocation((frame.getHeight() / 4) * 3 );// Three-quarters of the way down
splitPane.setDividerSize(20);
//Provide minimum sizes for the two components in the split pane
Dimension minimumSize = new Dimension(frame.getWidth(), frame.getHeight()/ 2);//width, height
scorePane.setMinimumSize(minimumSize); //Score takes up at least half the screen
instrumentPane.setMinimumSize(new Dimension(0,0));//no minimum size on the instrument panel; collapsible
frame.getContentPane().add(splitPane);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
.
package derange;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Insets;
import javax.swing.JScrollPane;
@SuppressWarnings("serial")//wtf is this needed for?
public class PanelScore extends JScrollPane{
public int strings = 6;
public void drawStaffTablature(Graphics g){
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.black);
int xStart = 30;//insets.left;
int xEnd = getParent().getWidth() - 30;
int yCoord = this.getHeight() / 2;
System.out.println(this.isShowing());
//Space between tablature lines
int lineSpacing = 15;
//Space between staffs.
int staffSpacing = 60;`enter code here`
for(int x = 0; x < strings; x++){
g2d.drawLine(xStart, yCoord + (lineSpacing * x), xEnd, yCoord + (lineSpacing * x));
//System.out.println("String: " + (x + 1));
g.drawString("Test", xStart, yCoord); //change the co-odrinates
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
drawStaffTablature(g);
}
}
最佳答案
简短的回答,不要从 JScrollPane
扩展,JScrollPane
包含称为 JViewport
的单个组件,它涵盖了大部分内容滚动 Pane (其余部分由 JScrollBar
s
相反,尝试从 JPanel
等扩展。
我还建议您不要在绘制代码中使用诸如 int xEnd = getParent().getWidth() - 30;
之类的内容,Graphics
上下文会被翻译到组件位置,将左上角 0x0
并剪裁到组件当前的宽度和高度
关于java - JSplitPane 上的绘图未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29554124/
下面是使用多个嵌套的 JSplitPanes 创建的简单布局的代码。 import java.awt.Color; import java.awt.Dimension; import java.awt
StackExchange 社区您好, 我对这个 JSplitPane 束手无策,我试图将其放入我的框架中,它位于我框架的右侧,而不是填充它或至少位于左侧。如果有人能帮助我解决这个问题,我将非常感激。
我有一个 Java GUI 程序,其中有一个 JSplitPane 来划分内容。 JSplitPane 的左侧是一个带有许多选项卡的 JTabbedPane - 一个非常复杂的布局。当左侧达到一定的复
只是想在屏幕上画一些线。 我已检查并确保所有相关代码都在运行 我已尝试调用 repaint(并确保其正在运行) 由于这是一个 JSplitPane,因此布局必须是 JSplitPane 布局 我正在设
我在通过鼠标调整 JSplitPane 的权重大小获取值时遇到一些问题。 这是我的代码: splitpane.setResizeWeight(0.1); splitpane.addPropertyCh
我在让 JSplitPane 按照我想要的方式工作时遇到了一些麻烦。 首先,我希望它完全填充其容器(JFrame),而不是由分割 Pane 内的组件确定其大小。其次,当我调整容器大小时,它不会在 JS
我遇到一个问题,我的 JSplitPane 有两个组件,左边是 JPanel,右边是第二个 JSplitPane包含JTextArea。 问题是,我的程序开始聚焦第二个 JSplitPane 的顶部(
我制作了一个 Java swing 应用程序。我的主类完成了整个 SwingUtilities.invokeLater(new Runnable() 的工作。 我的第二堂课,里面的一切都是我用过的:
我似乎无法通过调用 setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); 来更改 JSplitPane 的调整大小光标; 有谁知道如何解决这个问题?我正在使用 N
我有一个包含两个部分的 JSplitPane。我想在单击按钮时隐藏正确的部分,并在再次单击同一个按钮时将其恢复。 这是我目前所拥有的: private void jButton1ActionPerfo
在我的应用程序中,我有一个显示 JSplitPane 的 JFrame,拆分为 VERTICAL_SPLIT。顶部显示一个JLabel,底部显示一个JInternalFrame。出现两个问题。 正在显
我有一个垂直拆分的 JSplitPane,当我向下移动分隔线时,它会移动底部组件并且底部被切断。有没有一种方法可以指定 JSplitPane 的调整大小行为,以便(底部组件的)顶部被拆分 Pane 覆
我在一个 JSplitPane 中组合了两个 JPanel。用户应该能够非常自由地移动 split-pane-divider,但分隔线不能太大(最好只有 1px)。 有没有办法将 dividerSiz
我不知道为什么,但 slider 只会向左移动,甚至锁定新位置。它使用 NestedJSplitPane 教程的修改版本以及 JTree 和 JEditorPane。我的猜测是,JEditorPane
我正在编写一个工具,用于在文本文件上执行任务。该任务需要一些时间才能执行,因此我制作了一个面板来显示文件名和进度百分比。用户可以在一个或多个文件上运行该任务,因此我需要为每个文件显示一个面板。 在帮助
我的 JSplitPane 有问题,我将组件设置为 JSplitPane 但没有显示任何内容。代码如下: /**__COMPONENT OBJECTS__**/ JFrame frame =
我想为我的 JSplitPane 制作自定义且更大的箭头,并在向上和向下箭头之间留出一些空间。 我当前的 JSplitPane 图像 最佳答案 I just have some problem wit
我有一个 JSPlitPane,它们之间有 50% 的分隔线。这样就可以正常工作了。 但是,当我在右侧添加一些 JLabels 时,jsplitpane 会忽略我的 50% 分隔符,左侧 Pane 会
我想要一个 jsplitPane 并在运行我的程序时用左组件交换右组件。我将划分位置设置为 0.2 左右。当我交换左分量和右分量并将分割位置设置为 0.8 时; jSplitPane 有问题。它被锁定
我找到了这个例子: http://java2s.com/Open-Source/Java-Document-2/Swing/petersoft-java-style-2/com/petersoft/w
我是一名优秀的程序员,十分优秀!