我期待嘗試加載一個JScrollPane與水平的JScrollBar此圖像中所有的方式設置爲正確的,即是一個正確的:爪哇 - 打開JScrollPane的JScrollBar的使用設置爲
http://i.imgur.com/VeKYPa6.png
但是,無論我做什麼,我結束了與此圖像:
http://i.imgur.com/c9KzRqZ.png
這是我的代碼的相關片段
JComponent graph = new TrendsForSuccLarge(wccScores, wccScoresTimes, graphStrings, maxScore, bgColour, iPadWidth);
JScrollPane graphScrollPane = new JScrollPane(graph, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
JScrollBar horizontal = graphScrollPane.getHorizontalScrollBar();
horizontal.setValue(horizontal.getMaximum());
this.getContentPane().add(graphScrollPane, BorderLayout.CENTER);
發生什麼問題的任何想法?
在此先感謝!
凱什
SSCCE
import javax.swing.JFrame;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
class ForStackOverflow {
private static JFrame main;
//opens up a line chart on full screen
public static void main(String args[]) {
TempGraph tg = new TempGraph(main);
tg.setVisible(true);
}
}
class TempGraph extends JDialog {
private static final long serialVersionUID = 1L;
//opens up a line chart on full screen
public TempGraph(JFrame parent)
{
// load the frame
super(parent,true);
configureFrame();
}
private void configureFrame()
{
int iPadHeight = 644;
int iPadWidth = 981;
this.getContentPane().setLayout(new BorderLayout());
JComponent graph = new TrendsForSuccLarge2(iPadWidth);
JScrollPane graphScrollPane = new JScrollPane(graph, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
this.getContentPane().add(graphScrollPane, BorderLayout.CENTER);
JPanel buttons = new JPanel();
buttons.setLayout(new BorderLayout());
JButton ok = new JButton("Done");
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
next();
}
});
buttons.add(ok,BorderLayout.CENTER);
JButton exit = new JButton("Exit");
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
buttons.add(exit,BorderLayout.WEST);
this.getContentPane().add(buttons, BorderLayout.SOUTH);
this.pack();
this.setSize(this.getWidth(), 750);
this.setResizable(true);
Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
int widthFrame = iPadWidth;
int heightFrame = iPadHeight;
this.setSize(widthFrame, heightFrame);
setBounds((screenSize.width - this.getWidth())/2,
(screenSize.height - this.getHeight())/2,
getWidth(),
getHeight());
}
private void next()
{
this.setVisible(false);
}
}
class TrendsForSuccLarge2 extends JComponent {
// basic parameters
private static int PREF_W = 200;
private static final int PREF_H = 200;
private static final int BORDER_GAP = 10;
private static final int GRAPH_GAP = BORDER_GAP + 20;
private int graphWidth = 0;
private static final long serialVersionUID = 1L;
TrendsForSuccLarge2(int prefGraphWidth) {
graphWidth = prefGraphWidth;
paintComponent(null);
}
public void paint(Graphics g) {
int windowWidth = 2600;
PREF_W = windowWidth;
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.drawString("Hello", graphWidth/2, getHeight() - GRAPH_GAP);
g2.drawString("Hello1", graphWidth - GRAPH_GAP, getHeight() - GRAPH_GAP);
g2.drawString("Hello2", windowWidth - GRAPH_GAP - GRAPH_GAP, getHeight() - GRAPH_GAP);
// create x and y axes
g2.setColor(Color.black);
g2.drawLine(GRAPH_GAP, getHeight() - GRAPH_GAP, GRAPH_GAP, GRAPH_GAP);
g2.drawLine(GRAPH_GAP, getHeight() - GRAPH_GAP, windowWidth - GRAPH_GAP, getHeight() - GRAPH_GAP);
}
public Dimension getPreferredSize() {
return new Dimension(PREF_W, PREF_H);
}
}
嘗試在將「JScrollPane」添加到對話框後設置「JScrollBar」的值。 – Pietu1998
不要使用氯黴素,因爲它的使用與再生障礙性貧血有關。 –
+1氣墊船充滿了鰻魚,但它只是一個隨機的藥物名稱進行測試。 Pietu1998,我試過了,沒有用。 –