Avatar billede rapstam Nybegynder
04. december 2004 - 16:33 Der er 17 kommentarer og
1 løsning

problemer med JScrollPane

synes implementeringen ser fin ud, men ingen scrollbar

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;


public class Main extends JFrame {
    JTextArea console;
       
    public Main(){
       
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame("Flight System v1.2");
        frame.setSize(700, 500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    PanelMenu m = new PanelMenu(frame);
    CreateLayout c = new CreateLayout();
    ReserveLayout r = new ReserveLayout();
       
    Container content = frame.getContentPane();
    JTabbedPane pane = new JTabbedPane();
   
    pane.add("Create", c.center);
    pane.add("Reserve", r.center);
   
    JPanel bottom = new JPanel();
    console = new JTextArea();
        console.setPreferredSize(new Dimension(500,80));
        console.setEditable(false);
        console.setLineWrap(true);
        console.setWrapStyleWord(true);
        console.append(msg);
       
    bottom.add(new JScrollPane(console));

    content.add(pane, BorderLayout.CENTER);
    content.add(bottom, BorderLayout.SOUTH);
   
      frame.setVisible(true);
    }
Avatar billede repulse Nybegynder
04. december 2004 - 16:40 #1
Der kommer først en scrollbar når indholdet af boksen bliver mere end der kan vises - du kan også sætte scrollpane til altid at vise scrollbaren...

jScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);            jScrollPane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
Avatar billede rapstam Nybegynder
04. december 2004 - 16:42 #2
kører en test hvor der bliver skrevet 50 linier - og der kommer desværre ingen scrollbar
Avatar billede kalp Novice
04. december 2004 - 16:49 #3
DINTSCROLLPANE.setBounds(new Rectangle(50, 35, 275, 210));


prøv at sætte størrelsen på den
Avatar billede kalp Novice
04. december 2004 - 16:50 #4
hmm.. det har du gjort dog ikke på samme måde som mig
Avatar billede kalp Novice
04. december 2004 - 16:51 #5
nej du har ikke hehe.. jeg bliver helt væk her!
Avatar billede rapstam Nybegynder
04. december 2004 - 16:56 #6
kalp - er lidt i gang med din ide .. og det er jo selvfølgelig rigtigt at de er scrollpane't der skal sættes og ikke textArea
Avatar billede rapstam Nybegynder
04. december 2004 - 16:57 #7
JPanel bottom = new JPanel();
        console = new JTextArea();
        //console.setPreferredSize(new Dimension(500,80));
        console.setEditable(false);
        console.setLineWrap(true);
        console.setWrapStyleWord(true);
        console.append(msg);
       
        JScrollPane scroll = new JScrollPane(console);
        scroll.setPreferredSize(new Dimension(500,80));   
      bottom.add(scroll);
       
        // add components to Container
        content.add(pane, BorderLayout.CENTER);
        content.add(bottom, BorderLayout.SOUTH);
   
        // show the frame
          frame.setVisible(true);
    }
Avatar billede rapstam Nybegynder
04. december 2004 - 16:59 #8
men lige et bonus spørgsmål - dette textArea fungere som en consol for alle eksekverede kommandoer hentet andet steds fra. Hvis programmet kører i tid nok vil antallet af "appends" i textArea'et blive ret stort.. kan man smide nogle ud igen ? - en slags simpel bufffering ?
Avatar billede kalp Novice
04. december 2004 - 17:00 #9
det burde virker ellers prøv at smide dette ind i din konstuktør

scroll.setVisible(true);
Avatar billede rapstam Nybegynder
04. december 2004 - 17:01 #10
kalp - det virker. Det var bare dimensionerne på scroll og ikke text der skal sættes
Avatar billede kalp Novice
04. december 2004 - 17:05 #11
har ikke rigtig rodet så meget med det du spørger til, men du tænker på noget lignende at de første append's i din console skal slettes automatisk når din console når et bestemt antal linier?
Avatar billede rapstam Nybegynder
04. december 2004 - 17:09 #12
præcist ..
Avatar billede kalp Novice
04. december 2004 - 17:16 #13
to sekunder... indstallere lige sp2(ja desværre hehe)
og så kigger jeg lige på det.. kunne tænkes du skal tælle hvor mange rækker du har i din console og så slette en de første appends når du når et bestemet antal rækker.
Avatar billede rapstam Nybegynder
04. december 2004 - 17:22 #14
Deal - de 15 points er hjemme, men går offline nu til imorgen - julefrokoster - men smid et svar og evt en ide til console-tingen

>>Rapstam
Avatar billede kalp Novice
05. december 2004 - 14:48 #15
Her har du et eksempel...

det her er main...


package mypackage2;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.UIManager;
import java.awt.Dimension;
import java.awt.Toolkit;

public class editboxe
{
  public editboxe()
  {
    Frame frame = new start();
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height)
    {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width)
    {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.addWindowListener(new WindowAdapter()
      {
        public void windowClosing(WindowEvent e)
        {
          System.exit(0);
        }
      });
    frame.setVisible(true);
  }

  /**
  *
  * @param args
  */
  public static void main(String[] args)
  {
    try
    {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

    new editboxe();
  }
}






det her er framen


package mypackage2;
import java.util.StringTokenizer;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;

public class start extends JFrame
{
  private int counter = 0;
  private JTextArea jTextArea1 = new JTextArea();
  private JButton jButton1 = new JButton();
  private JTextField jTextField1 = new JTextField();

  public start()
  {
    try
    {
      jbInit();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void jbInit() throws Exception
  {
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(400, 300));

    jTextArea1.setBounds(new Rectangle(15, 5, 370, 210));
    jButton1.setText("jButton1");
    jButton1.setBounds(new Rectangle(40, 230, 75, 23));
    jButton1.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          jButton1_actionPerformed(e);
        }
      });
    jTextField1.setBounds(new Rectangle(120, 230, 245, 20));
    this.getContentPane().add(jTextField1, null);
    this.getContentPane().add(jButton1, null);
    this.getContentPane().add(jTextArea1, null);
 
   
  }

  private void jButton1_actionPerformed(ActionEvent e)
  {
  jTextArea1.append(jTextField1.getText() + "\n");
  counter++;
  if(counter == 100 || counter > 100)
  {
  String tmp = jTextArea1.getText();
  StringTokenizer newfile = new StringTokenizer(tmp, "\n");
  String tmp2 = "";
  newfile.nextToken();
  while(newfile.hasMoreTokens())
  {
  tmp2 += newfile.nextToken() + "\n";
  jTextArea1.setText(tmp2);
  }
  }

 
  }
 
  }


 
 
skriv i noget tekst..  tryk på knappen... gør det 100 gange hehe og så sletter den den første linie og for hver gang du skriver en ny linie bliver den første slettet... håber det kan bruges..!

det kan tilpasses så den sletter flere linier afhængig af hvor meget en dine appends fylder..
Avatar billede kalp Novice
05. december 2004 - 14:49 #16
undskyld forsinkelsen.. men min pc skulle have den helt store omgang... sp2, fjerne spyware og virus hehe nu er den da ren igen og jeg kan arbejde i fred;)
Avatar billede rapstam Nybegynder
05. december 2004 - 14:51 #17
Jeg takker :)
Avatar billede kalp Novice
05. december 2004 - 14:53 #18
Ingen årsag du må lige spørge hvis du får problemer overføre ideen til din egen kode: )
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester