2014-12-19 2 views
0

저는 프로그래머가 아니고 열성적입니다. 몇 가지 데이터를 추출하고 추출하는 수천 개의 PDF 파일이 있습니다. PDF를 텍스트로 변환하면 데이터가 X 상자 안에 있습니다 (PDF 내의 그래픽으로 의심됩니다). 따라서 PDF를 텍스트로 변환하면이 데이터의 증거는 없습니다 ... PDF를 이미지로 변환하여 특정 영역의 이미지를 봅니다. 나는 X가 검정색 픽셀을 기대하고, 지금까지 그렇게 좋았습니다. PDF가 창 높이에 맞지 않아서 스크롤바를 추가해야합니다.스크롤 막대를 추가해야합니다.

메인 윈도우에 어떻게 스크롤바를 추가 할 수 있는지 이해가되지 않습니다.

사람이 바로 올바른 방향으로 날 조종 할 수

코드는 불완전하지만 노력 주셔서 감사합니다 : JScrollPane의 myPane = 새로운 JScrollPane의 같은 뭔가

import java.awt.Color; 
import java.awt.EventQueue; 
import java.awt.Frame; 
import java.awt.Graphics; 
import java.awt.Image; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 
import javax.swing.JComponent; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 

public class ImageViewer { 
    public static void main(String[] args){ 
     EventQueue.invokeLater(new Runnable() 
     { 
      public void run(){ 


       ImageFrame frame = new ImageFrame(); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setVisible(true); 
      } 
     } 
     ); 
    } 
} 

class ImageFrame extends JFrame{ 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    public ImageFrame(){ 
     setTitle("Image Viewer"); 
     setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); 

     ImageComponent component = new ImageComponent(); 
     add(component);   

    } 

    public static final int DEFAULT_WIDTH = 860; 
    public static final int DEFAULT_HEIGHT = 1000; 
} 


class ImageComponent extends JComponent{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    private Image image; 
    public ImageComponent(){ 
     try{ 
      File image2 = new File("Files/4.jpg"); 
      image = ImageIO.read(image2); 

     } 
     catch (IOException e){ 
      e.printStackTrace(); 
     } 
    } 
    public void paintComponent (Graphics g){ 
     if(image == null) return; 
     int imageWidth = image.getWidth(this); 
     int imageHeight = image.getHeight(this); 


     g.drawImage(image, 0, 0, this); 

     // Draw on the BufferedImage via the graphics context. 
     g.setColor(Color.RED); 
     g.drawRect(445, 153, 20, 20); 
     g.drawRect(552, 153, 20, 20); 
     g.drawRect(661, 153, 20, 20); 
     g.drawRect(445, 182, 20, 20); 
     g.drawRect(552, 182, 20, 20); 
     g.drawRect(661, 182, 20, 20); 
     g.drawRect(445, 226, 20, 20); 
     g.drawRect(552, 226, 20, 20); 
     g.drawRect(661, 226, 20, 20); 
     g.drawRect(445, 271, 20, 20); 
     g.drawRect(552, 271, 20, 20); 
     g.drawRect(661, 271, 20, 20); 


     for (int i = 0; i*imageWidth <= getWidth(); i++) 
      for(int j = 0; j*imageHeight <= getHeight();j++) 
       if(i+j>0) g.copyArea(0, 0, imageWidth, imageHeight, i*imageWidth, j*imageHeight); 

     //Count black pixels to see if the box contains an X 
     int A1 = 0; 
     for (int y = 153; y < 173; y++) 
     { 
      for (int x = 445; x < 465; x++) 
      { 
       int c = ((BufferedImage) image).getRGB(x,y); 
       Color color = new Color(c); 
       if (c != -1) 
       { 
        A1++; 
       } 
      } 
     } 
     System.out.println("First box pixel count = " + A1); 

     //Count black pixels to see if the box contains an X 
     int A2 = 0; 
     for (int y = 153; y < 173; y++) 
     { 
      for (int x = 552; x < 572; x++) 
      { 
       int c = ((BufferedImage) image).getRGB(x,y); 
       if (c != -1) 
       { 
        A2++; 
       } 
      } 
     } 
     System.out.println("Second box pixel count = " + A2); 

     //Count black pixels to see if the box contains an X 
     int A3 = 0; 
     for (int y = 153; y < 173; y++) 
     { 
      for (int x = 661; x < 681; x++) 
      { 
       int c = ((BufferedImage) image).getRGB(x,y); 
       if (c != -1) 
       { 
        A3++; 
       } 
      } 
     } 
     System.out.println("Third box pixel count = " + A3); 

    } 

} 
+0

http://stackoverflow.com/questions/10801104/how-to-make-a-jframe-scrollable – Grice

답변

0

봐();

+0

고마워요, 나는 그것이 작동하는 것처럼 보이지만 여러 가지 장소에서 이것을 넣으려고했지만, 이미지 프레임이 컨테이너인데, 내가 정말로 알아야 할 것은 이미지 판과 함께 스콜 팬을 가질 수있는 상위 컨테이너를 배치하는 방법입니다. –

관련 문제