Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - JAVA GUI NullPointerException
Forum - Java - JAVA GUI NullPointerException

Avatar
splittik (Normal User)
Rookie


Messaggi: 27
Iscritto: 25/04/2012

Segnala al moderatore
Postato alle 21:15
Venerdì, 13/09/2013
Ciao a tutti ho un grosso problema e non dove mettere le mani

Codice sorgente - presumibilmente Java

  1. public static void gui(String s) throws BadLocationException {
  2.         JFrame frame = new JFrame("Allineamento sequenze consenso");
  3.  
  4.         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  5.         frame.setBounds((screenSize.width - 1200) / 2, (screenSize.height - 700) / 2, 1200, 700);
  6.         frame.setVisible(true);
  7.         frame.setDefaultLookAndFeelDecorated(false);
  8.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  9.         frame.setResizable(false);
  10.  
  11.         Container container = frame.getContentPane();
  12.         container.setLayout(null);
  13.         // create the middle panel components
  14.  
  15.         JTextPane display = new JTextPane();
  16.         display.setAutoscrolls(true);
  17.         display.setEditable(false);
  18.         display.setBackground(Color.WHITE);
  19.         display.setText("M Description of property set here.\n");
  20.         display.setFont(null);
  21.  
  22.         Document doc = display.getStyledDocument();
  23.  
  24.         JPanel noWrapPanel = new JPanel(new BorderLayout());
  25.         noWrapPanel.add(display);
  26.        
  27.         JScrollPane scroll = new JScrollPane(noWrapPanel);
  28.         scroll.setBounds(1, 0, 1198, 645);
  29.         scroll.setAutoscrolls(true);
  30.         scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  31.         scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  32.        
  33.         container.add(scroll);
  34.  
  35.         SimpleAttributeSet idrofobo = new SimpleAttributeSet();
  36.         StyleConstants.setForeground(idrofobo, Color.BLUE);
  37.         StyleConstants.setBold(idrofobo, true);
  38.  
  39.         SimpleAttributeSet acido = new SimpleAttributeSet();
  40.         StyleConstants.setForeground(acido, Color.GREEN);
  41.         StyleConstants.setBold(acido, true);
  42.  
  43.         SimpleAttributeSet polari = new SimpleAttributeSet();
  44.         StyleConstants.setForeground(polari, Color.RED);
  45.         StyleConstants.setBold(polari, true);
  46.  
  47.         SimpleAttributeSet basici = new SimpleAttributeSet();
  48.         StyleConstants.setForeground(basici, Color.ORANGE);
  49.         StyleConstants.setBold(basici, true);
  50.  
  51.         try {
  52.             for (int i = 0; i < s.length(); i++) {
  53.                 if (s.charAt(i) == 'L' || s.charAt(i) == 'P' || s.charAt(i) == 'A' || s.charAt(i) == 'V' || s.charAt(i) == 'G' || s.charAt(i) == 'M' || s.charAt(i) == 'W' || s.charAt(i) == 'F' || s.charAt(i) == 'I') {
  54.                     doc.insertString(doc.getLength(), s.charAt(i) + "    ", idrofobo);
  55.                 } else if (s.charAt(i) == 'D' || s.charAt(i) == 'E') {
  56.                     doc.insertString(doc.getLength(), s.charAt(i) + "    ", acido);
  57.                 } else if (s.charAt(i) == 'N' || s.charAt(i) == 'S' || s.charAt(i) == 'Q' || s.charAt(i) == 'T' || s.charAt(i) == 'C' || s.charAt(i) == 'Y') {
  58.                     doc.insertString(doc.getLength(), s.charAt(i) + "    ", polari);
  59.                 } else if (s.charAt(i) == 'H' || s.charAt(i) == 'R' || s.charAt(i) == 'K') {
  60.                     doc.insertString(doc.getLength(), s.charAt(i) + "    ", basici);
  61.                 } else if (s.charAt(i) == 'U') {
  62.                     doc.insertString(doc.getLength(), s.charAt(i) + "    ", null);
  63.                 } else if (s.charAt(i) == '\n') {
  64.                     doc.insertString(doc.getLength(), s.charAt(i) + "", null);
  65.                 } else if (s.charAt(i) == '*' || (s.charAt(i) == '.' && s.charAt(i - 1) != '0' && s.charAt(i - 1) != '1' && s.charAt(i - 1) != '2' && s.charAt(i - 1) != '3' && s.charAt(i - 1) != '4' && s.charAt(i - 1) != '5' && s.charAt(i - 1) != '6' && s.charAt(i - 1) != '7' && s.charAt(i - 1) != '8' && s.charAt(i - 1) != '9') || s.charAt(i) == ':') {
  66.                     doc.insertString(doc.getLength(), s.charAt(i) + "    ", null);
  67.                 } else if (s.charAt(i) == '_') {
  68.                     doc.insertString(doc.getLength(), " " + "    ", null);
  69.                 }else {
  70.                     doc.insertString(doc.getLength(), s.charAt(i) + "", null);
  71.                 }
  72.             }
  73.             //doc.insertString(doc.getLength(), " ", idrofobo);
  74.         } catch (BadLocationException ex) {
  75.             Logger.getLogger(JavaToConsenso2.class.getName()).log(Level.SEVERE, null, ex);
  76.         }



...il problema consiste nel fatto che se l'utente seleziona tutto il contenuto della
gui come prima cosa si perde l'identazione corretta e su console di netBeans compare
il seguente messaggio

Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException
    at javax.swing.text.DefaultCaret.handleMoveDot(DefaultCaret.java:1101)
    at javax.swing.text.DefaultCaret.moveDot(DefaultCaret.java:1092)
    at javax.swing.text.DefaultCaret.moveCaret(DefaultCaret.java:332)
    at javax.swing.text.DefaultCaret.mouseDragged(DefaultCaret.java:582)
    at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:320)
    at java.awt.Component.processMouseMotionEvent(Component.java:6336)
    at javax.swing.JComponent.superProcessMouseMotionEvent(JComponent.java:3291)
    at javax.swing.Autoscroller.actionPerformed(Autoscroller.java:176)
    at javax.swing.Timer.fireActionPerformed(Timer.java:313)
    at javax.swing.Timer$DoPostEvent.run(Timer.java:244)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673)
    at java.awt.EventQueue.access$300(EventQueue.java:96)
    at java.awt.EventQueue$2.run(EventQueue.java:634)
    at java.awt.EventQueue$2.run(EventQueue.java:632)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:643)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

bo...non capisco:rotfl::rotfl:

questa è una prima problematica, la seconda è che come potrete notare la finestra non è scalabile
perchè non sono riuscito a capire come fare ad adattare a runtime le dimensioni del Jframe e del JScrollPane
..ovvero cambiavo le dimensioni del jframe (tramite mouse) e il jscroll pane restava sempre delle solite dimensioni

Grazie per l'attenzione ciaooooooooo


splittik ha allegato un file: Schermata del 2013-09-13 21:13:46.png (136988 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
splittik (Normal User)
Rookie


Messaggi: 27
Iscritto: 25/04/2012

Segnala al moderatore
Postato alle 21:16
Venerdì, 13/09/2013
situazione post selezione


splittik ha allegato un file: Schermata del 2013-09-13 21:14:02.png (158980 bytes)
Clicca qui per guardare l'immagine
PM Quote