2015-04-27 3 views
0

У меня возникли проблемы с добавлением горизонтальной полосы прокрутки в JFrame с холстом. Я рисую изображения на холсте, а иногда эти изображения перегоняют экран, поэтому я хочу, чтобы полоса прокрутки позволяла пользователю видеть их.JRrame Полоса прокрутки и холст

Это ключевой раздел в коде, если требуется какой-либо другой код, пожалуйста, дайте мне знать, и я отредактирую.

Может ли кто-нибудь указать, что я делаю неправильно?

Много спасибо J

public class TheFrame extends JFrame { 

private static ThePanel canvas; 
private String deckImagesToUse; 

/** 
* The constructor creates a Frame ready to display the cards 
*/ 
public TheFrame(String cardImgFile) { 


    // Calls the constructor in the JFrame superclass passing up the name to 
    // display in the title 
    super("Window title"); 

    //Using users choice of cards 
    deckImagesToUse = cardImgFile; 

    // When you click on the close window button the window will be closed 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    // This has North, East, South, West and center positions for components 
    setLayout(new BorderLayout()); 

    // This is what we will draw on (see the inner class below) 
    canvas = new ThePanel(); 
    setSize(700, 300); 
    this.add(canvas, BorderLayout.CENTER); 

    //Scroll Bar 
    JScrollPane scrollPane = new JScrollPane(canvas); 
    //scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
    this.getContentPane().add(scrollPane); 
    int desiredWidth = (Pack.cardsInPlay.size() * 70); 
    Dimension d = new Dimension(desiredWidth,300); 
    canvas.setPreferredSize(d); 

    setVisible(true); // Display the window 


} 

ответ

1
canvas = new ThePanel(); 
setSize(700, 300); 
this.add(canvas, BorderLayout.CENTER); 

Размер настройка и добавление к this бесполезно, потому что позже ScrollPane игнорирует его.

Когда изображение больше, чем JScrollPane просто позвоните canvas.setPreferredSize(imageWidth, imageHeight);

+0

@StainslavL - Спасибо, что сделали это :) – user2690146

+0

Затем принять ответ, как правильно – StanislavL

Смежные вопросы