Servus,
ich bin zurzeit dabei einen Mapeditor zu entwickeln für ein Spiel das ich in meinem Studium entwickel. bisher hab ich alle hürden durch suchen und nachlesen von doc's lösen können. jedoch bringt mich dieses problem zum verzweifeln. ich beschreibe kurz meine situation.
Ich habe einen JInternalFrame in dem ich 2 JLabels lade die ein Bild beistzen welches eine grösse von 8000x2400 pixel hat.
JLabel nummer1 ist der hintergrund der einfarbig ist.
JLabel nummer2 ist der 2. hintergrund der eine alphatransparenz besitzt, auf dieses Label adde ich JButtons welche eine abmessung von 32x32 pixeln haben(zwar nicht von belang aber egal).
JLabel nummer3 ist der Vordergrund. er wird am ende vor die buttons gelegt um somit bestimmte bereiche zu verdecken.
Der JInternalFrame besitzt eine grösse von 1100 x 530 pixeln, somit will ich natürlich auch eine JScrollPane hinzufügen damit ich scrollen kann.
nun zu meinem problem.
Für den Scrollbalken habe ich einen extra jLabel namens mapScrollLabel angelegt welcher mit einem image versehen ist das nur einen pixel links oben und einen recht unten hat um die komplette breite und länge mit dem scrollbalken zu füllen.
leider wird dieser scrollbalken nicht angezeigt. im anhang habe ich mal den quelltext der methode angefügt. ist nicht gerade die sauberste lösung aber ich habe mir angewöhnt am ende zu optimieren wenn alles läuft.
kann mir wer eventuel helfen mit meinem problem?? =(
MfG
Tepoo
[JAVA=289]private void createMap(String ground){
mapFrame.setBounds(10, 228, 1100, 530);
mapFrame.setVisible(true);
int posX = 0, posY = 0, count = 0;
if(mapBackgroundLabel == null || mapBackground2Label == null || mapForegroundLabel == null){
mapScrollLabel = new JLabel();
mapScrollLabel.setIcon(new ImageIcon(getClass().getResource("/images/scrollBar.png")));
mapScrollLabel.setSize(new Dimension(8000,2400));
mapScrollLabel.setPreferredSize(new Dimension(8000, 2400));
mapScrollLabel.setVisible(true);
mapBackground2Label = new JLabel();
mapBackground2Label.setIcon(new ImageIcon(mapModel.getBackground2().getImage()));
mapBackgroundLabel = new JLabel();
mapBackgroundLabel.setIcon(new ImageIcon(mapModel.getBackground().getImage()));
mapForegroundLabel = new JLabel();
mapBackgroundLabel.setIcon(new ImageIcon(mapModel.getForeground().getImage()));
mapBackground2Label.setSize(new Dimension(8000,2400));
mapBackground2Label.setPreferredSize(new Dimension(8000,2400));
mapBackground2Label.setVisible(true);
mapForegroundLabel.setSize(new Dimension(8000,2400));
mapForegroundLabel.setPreferredSize(new Dimension(8000,2400));
mapForegroundLabel.setVisible(true);
mapBackgroundLabel.setSize(new Dimension(8000,2400));
mapBackgroundLabel.setPreferredSize(new Dimension(8000,2400));
mapBackgroundLabel.setVisible(true);
mapScrollPane = new JScrollPane(mapScrollLabel);
mapScrollPane.setViewportView(mapScrollLabel);
mapScrollPane.setBackground(new Color(0,0,0,0));
mapScrollPane.setVisible(true);
mapScrollPane.setFocusable(true);
while(count!=18824){
JButton temp = new JButton();
if(posX+20 < 8020 ){
temp.setBounds(posX, posY, 32, 32);
posX = posX+32;
} else {
posX = 0;
posY = posY+32;
temp.setBounds(posX, posY, 32, 32);
}
temp.setName(count+"");
temp.setContentAreaFilled(false);
temp.addActionListener(this);
mapButton.add(count, temp);
count++;
}
for(JButton insert : mapButton){
mapBackground2Label.add(insert);
}
mapFrame.add(mapScrollPane);
mapFrame.add(mapForegroundLabel);
mapFrame.add(mapBackground2Label);
mapFrame.add(mapBackgroundLabel);
} else {
if(ground.equals("back")){
mapBackgroundLabel.setIcon(new ImageIcon(mapModel.getBackground().getImage()));
} else if(ground.equals("back2")){
mapBackground2Label.setIcon(new ImageIcon(mapModel.getBackground2().getImage()));
} else if(ground.equals("fore")){
mapForegroundLabel.setIcon(new ImageIcon(mapModel.getForeground().getImage()));
}
}
}[/code]
ich bin zurzeit dabei einen Mapeditor zu entwickeln für ein Spiel das ich in meinem Studium entwickel. bisher hab ich alle hürden durch suchen und nachlesen von doc's lösen können. jedoch bringt mich dieses problem zum verzweifeln. ich beschreibe kurz meine situation.
Ich habe einen JInternalFrame in dem ich 2 JLabels lade die ein Bild beistzen welches eine grösse von 8000x2400 pixel hat.
JLabel nummer1 ist der hintergrund der einfarbig ist.
JLabel nummer2 ist der 2. hintergrund der eine alphatransparenz besitzt, auf dieses Label adde ich JButtons welche eine abmessung von 32x32 pixeln haben(zwar nicht von belang aber egal).
JLabel nummer3 ist der Vordergrund. er wird am ende vor die buttons gelegt um somit bestimmte bereiche zu verdecken.
Der JInternalFrame besitzt eine grösse von 1100 x 530 pixeln, somit will ich natürlich auch eine JScrollPane hinzufügen damit ich scrollen kann.
nun zu meinem problem.
Für den Scrollbalken habe ich einen extra jLabel namens mapScrollLabel angelegt welcher mit einem image versehen ist das nur einen pixel links oben und einen recht unten hat um die komplette breite und länge mit dem scrollbalken zu füllen.
leider wird dieser scrollbalken nicht angezeigt. im anhang habe ich mal den quelltext der methode angefügt. ist nicht gerade die sauberste lösung aber ich habe mir angewöhnt am ende zu optimieren wenn alles läuft.
kann mir wer eventuel helfen mit meinem problem?? =(
MfG
Tepoo
[JAVA=289]private void createMap(String ground){
mapFrame.setBounds(10, 228, 1100, 530);
mapFrame.setVisible(true);
int posX = 0, posY = 0, count = 0;
if(mapBackgroundLabel == null || mapBackground2Label == null || mapForegroundLabel == null){
mapScrollLabel = new JLabel();
mapScrollLabel.setIcon(new ImageIcon(getClass().getResource("/images/scrollBar.png")));
mapScrollLabel.setSize(new Dimension(8000,2400));
mapScrollLabel.setPreferredSize(new Dimension(8000, 2400));
mapScrollLabel.setVisible(true);
mapBackground2Label = new JLabel();
mapBackground2Label.setIcon(new ImageIcon(mapModel.getBackground2().getImage()));
mapBackgroundLabel = new JLabel();
mapBackgroundLabel.setIcon(new ImageIcon(mapModel.getBackground().getImage()));
mapForegroundLabel = new JLabel();
mapBackgroundLabel.setIcon(new ImageIcon(mapModel.getForeground().getImage()));
mapBackground2Label.setSize(new Dimension(8000,2400));
mapBackground2Label.setPreferredSize(new Dimension(8000,2400));
mapBackground2Label.setVisible(true);
mapForegroundLabel.setSize(new Dimension(8000,2400));
mapForegroundLabel.setPreferredSize(new Dimension(8000,2400));
mapForegroundLabel.setVisible(true);
mapBackgroundLabel.setSize(new Dimension(8000,2400));
mapBackgroundLabel.setPreferredSize(new Dimension(8000,2400));
mapBackgroundLabel.setVisible(true);
mapScrollPane = new JScrollPane(mapScrollLabel);
mapScrollPane.setViewportView(mapScrollLabel);
mapScrollPane.setBackground(new Color(0,0,0,0));
mapScrollPane.setVisible(true);
mapScrollPane.setFocusable(true);
while(count!=18824){
JButton temp = new JButton();
if(posX+20 < 8020 ){
temp.setBounds(posX, posY, 32, 32);
posX = posX+32;
} else {
posX = 0;
posY = posY+32;
temp.setBounds(posX, posY, 32, 32);
}
temp.setName(count+"");
temp.setContentAreaFilled(false);
temp.addActionListener(this);
mapButton.add(count, temp);
count++;
}
for(JButton insert : mapButton){
mapBackground2Label.add(insert);
}
mapFrame.add(mapScrollPane);
mapFrame.add(mapForegroundLabel);
mapFrame.add(mapBackground2Label);
mapFrame.add(mapBackgroundLabel);
} else {
if(ground.equals("back")){
mapBackgroundLabel.setIcon(new ImageIcon(mapModel.getBackground().getImage()));
} else if(ground.equals("back2")){
mapBackground2Label.setIcon(new ImageIcon(mapModel.getBackground2().getImage()));
} else if(ground.equals("fore")){
mapForegroundLabel.setIcon(new ImageIcon(mapModel.getForeground().getImage()));
}
}
}[/code]
Zuletzt bearbeitet: