Gente eu tô tentando fazer uma estrutura que contenha uma imagem dentro de um scrollImage e por cima dessa imagem eu preciso criar alguns jLabels… porém, eu não sei como fazer isso… queia saber se eu consigo utilizar a classe imagePanel que o viniGodoy criou e adaptá-la para o que eu preciso. Se eu puder, como devo fazer isso?
Obrigada!
eu tô tentando colocar " a classe imagePanel" dentro de um scrollPane. o código até compila, mas o scroll não tah aparecendo… eu tô fazendo alguma coisa errada?
JImagePanel imagePanel = new JImagePanel("C:\\Users\\Silvia\\Pictures\\bexigas1.jpg");
JFrame frame = new JFrame("Testando redimensionamento");
JScrollPane scrollImage = new JScrollPane (imagePanel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
frame.add(scrollImage);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setVisible(true);
}
Obrigada
E outra coisa, eu criei cim JLabel teste para ver se ele ficava em cima da imagem, mas não tah funcionando, ele não fica posicionado dentro da imagem. Então são duas coisas: uma: eu não tô conseguindo colocar esse panel dentro do scroll e tb não ô conseguindo sobrepor um label a ele… eu tô faznedo algo errado, ou será q a essa classe não permite isso?
JImagePanel imagePanel = new JImagePanel("C:\\Users\\Silvia\\Pictures\\bexigas1.jpg");
JFrame frame = new JFrame("Testando redimensionamento");
JScrollPane scrollImage = new JScrollPane(imagePanel,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollImage.setSize(250,150);
scrollImage.setLocation(0, 0);
scrollImage.setVisible(true);
frame.add(scrollImage);
JLabel label = new JLabel();
label.setText("Tathi");
label.setSize(100, 100);
label.setLocation(0, 0);
label.setVisible(true);
frame.add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setVisible(true);
}
Hehehehe eu de novo… tô apanhando um pouquinho aqui mas consegui que o label aparecesse em cima da imagem… soh q aimagem se redimensiona com o tamanho da janela. Eu preciso q o tamanho da imagem fique sempre igual, ou seja, não seja redimensionavel. Como devo fazer isso?
JImagePanel imagePanel = new JImagePanel("C:\\Users\\Silvia\\Pictures\\bexigas1.jpg");
JFrame frame = new JFrame("Testando redimensionamento");
JLabel label = new JLabel();
label.setText("Tathi");
label.setSize(100, 100);
label.setLocation(0, 0);
label.setVisible(true);
imagePanel.add(label);
JScrollPane sb1 = new JScrollPane ( imagePanel );
sb1.setPreferredSize(new Dimension(15,10));
sb1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
frame.add(sb1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setVisible(true);
}
Tem um parametro que acho que é WrapType nessa classe, voce passa para não redimensionar.
E essa classe é um Container como qualquer outro JPanel, então voce pode colocar um LayoutManager e adicionar seu label sem posições absolutas.
e como eu passo esse parêmetro??
Você faz:
É, FillType não WrapType.
Esse FillType tem os mesmos que voce encontraria para o background do windows, lado a lado, extendido e centralizado.
Soh que o problema é q o seguinte: eu tô colocandp esse panel dentro de um scroll e ele redimensiona a imagem para o tamanho do scroll… tem como ele não redimensionar a imagem? deixa-la sempre com o tamanho natural?
Eu tô fazendo desse jeito abaixo e encontro dois problemas:
- o meu scroll não aparece de jeito nenhum
- o label escrito tathi não aparece na coordenada 0,0
public static void main(String[] args) throws IOException {
JImagePanel imagePanel = new JImagePanel("C:\\Users\\Silvia\\Pictures\\bexigas1.jpg");
imagePanel.setFillType(JImagePanel.FillType.CENTER);
JFrame frame = new JFrame("Testando redimensionamento");
JLabel label = new JLabel();
label.setText("Tathi");
label.setSize(100, 100);
label.setLocation(0, 0);
label.setVisible(true);
imagePanel.add(label);
JScrollPane scrollImage = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollImage.setLocation(0,0);
scrollImage.setSize(10, 10);
scrollImage.setVisible(true);
scrollImage.setViewportView(imagePanel);
frame.add(scrollImage);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(150,200);
frame.setVisible(true);
frame.setLayout(null);
}
}