Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
11
Cevap
375
Tıklama
0
Öne Çıkarma
Java'da labelleri mesaj gibi konumlandırma
W
8 yıl
Yüzbaşı
Konu Sahibi

Merhaba,

arkadaşlar java'da labelleri mesaj gibi konumlandırmak istiyorum. Mesajlar veritabanından çekilecek.

Örnek olarak şöyle olması lazım :

< Resime gitmek için tıklayın >

Ama ben attıysam benim tarafa ben atmadıysam diğer taraft olacak ve mesela diğer kullanıcının attığı mesajları bir panel gibi bir şeyde toplamam lazım. Çünkü sonra renk vericeğim ve mesajlar zaman sırasıyla olması lazım ve maalesef nasıl yapacağım hakkında hiç bir fikrim yok

Yardımınıza ihtiyacım var.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



W
8 yıl
Yüzbaşı
Konu Sahibi

UP



G
7 yıl
Teğmen

mesela Jlabel[] labels=new JLabel[50];



string query= "buraya";

arraylist liste;

Jpanel jp = new JPanel()

for(i=0; i<liste.size; i++){



labels= new JLabel(liste.get(i).mesaj());

jp.add(labels);





}

bunun gibi bişey yapabilirsin





< Bu mesaj bu kişi tarafından değiştirildi Guest-65F711D5E -- 6 Mart 2018; 17:12:27 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
W
7 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: crazy programmer

mesela Jlabel[] labels=new JLabel[50];



string query= "buraya";

arraylist liste;

Jpanel jp = new JPanel()

for(i=0; i<liste.size; i++){



labels= new JLabel(liste.get(i).mesaj());

jp.add(labels);





}

bunun gibi bişey yapabilirsin





Çıktı nasıl oluyor foto gönderebilir misiniz?

Yardımınıza ihtiyacım var.



< Bu ileti DH mobil uygulamasından atıldı >

G
7 yıl
Teğmen

uygularsan çıktıyı kendinde görebilirsin hacım.



< Bu ileti DH mobil uygulamasından atıldı >
Bu mesaja 1 cevap geldi.
W
7 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: crazy programmer

uygularsan çıktıyı kendinde görebilirsin hacım.

Sadıç çalıştırdım ama olmadı.



< Bu ileti DH mobil uygulamasından atıldı >

G
7 yıl
Teğmen

hacım sen ne kullanıyorsun, java consol veya gui?



< Bu ileti DH mobil uygulamasından atıldı >
Bu mesaja 1 cevap geldi.
W
7 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: crazy programmer

hacım sen ne kullanıyorsun, java consol veya gui?

Gui



< Bu ileti mobil sürüm kullanılarak atıldı >

G
7 yıl
Teğmen

şimdi ilk başta bir class oluştur. daha sonra arraylist içerisinde o class taki elementleri çekerek veritabanı bağlantasını sağlayarak bir arraylist class oluştur. son aşama ise jframe oluşturarak gerekli tools elementlerini çağırman.


1.Aşama
---------


class Mesajlar{

String ad, soyad;

public a(String Ad, String Soyad){

this.ad=Ad;
this.soyad=Soyad;

}
public String getAd(){

return ad;
}

public String getSoyad(){

return soyad;
}


}


2.Aşama
-----------
public Arraylist<Mesajlar> getVeri(){

ArrayList a = new Arraylist();

String a ="buraya query sorgunu ekle";

Mesajlar mesaj;
while(rs.next()){

mesaj(
rs.getString("ad");
rs.getString("soyad")


);
a.add(mesaj);

}
}
son aşamada ;
------------------
Arraylist <Mesajlar> mesajlar = getVeri();
JPanel jp = new Jpanel();
JLabel[] label = new JLabel[500];
for(int i=0; i<mesajlar.size(); i++){

burayada eklersin artıg
}

kendin yap işte bu kadar aklımdan yapabildim. hadi golay gelsin haçım.



< Bu ileti DH mobil uygulamasından atıldı >

T
7 yıl
Yarbay

Yukardaki kodu bilgisayarda denesen biraz düzenleme ile çalışır, denedin mi?


Bu mesaja 1 cevap geldi.
W
7 yıl
Yüzbaşı
Konu Sahibi

quote:

Orijinalden alıntı: revivo72

Yukardaki kodu bilgisayarda denesen biraz düzenleme ile çalışır, denedin mi?

Merhaba,

aşama gruplarını anlamadım tam olsa.

Yardımınıza ihtiyacım var.


Bu mesaja 1 cevap geldi.
T
7 yıl
Yarbay

Label'ları msj gibi konumlandırma denemem.



Kodlar biraz ekle-çıkartlı oldu, yani gereksiz kodlar da var. Ve kodlar arasında komment'ler de pek yok.Uzun olmasının bir sebebi üstteki arkadaşın Mesajlar klas örneği üzerinden gitmem.



Gördüğün gibi label içinde kullanılan metinleri mysql vt'den cekiyor. Label'lerin etrafında bir marjin (margin) vermek istedim ancak HTML/CSS'teki border margin:1px; kadar kolay değildi, o yüzden sadece siyah border vererek bıraktım, hepsi üst üste binince çizgili defter gibi göründü.



Bu tür işlerde yapman gereken temel bir Java kitabından temelleri çalışman, kod yazman, sorunla karşılaştıkça DuckDuckGo ile araman yani Debugging yapman ta ki istenen sonucu üretene kadar. En sonunda da Kent Beck gibi refactoring yapmak. Kent Beck kimdir diyecek olursan, refactoring'in kralıdır.



Haa bir de dikkat ettiysen kodları Eclipse gibi bir IDE'de değil Emacs editörde yazdım cunku ufak deneme amaçlı şeyleri genelde editörde yazıyorum fakat kodu çalıştırırken kolaylık açısından bir Ant dosyası da (LabelDiz_build.xml adını verdiğim) hazırlıyorum.



SS:

< Resime gitmek için tıklayın >

Kod:

quote:



import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.io.*;



import java.util.*;



import java.nio.charset.Charset;

import java.nio.charset.UnsupportedCharsetException;



//import java.awt.GridLayout;



import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.BorderFactory;

import javax.swing.JComponent;



import javax.swing.*;

import java.awt.*;



public class LabelDiz {

public static ArrayList<Mesajlar> getVeri() {



Class driver_class=null;



try {

driver_class = Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}



System.out.println("Found driver " + driver_class);



Connection conn= null;



String un = "db_user";

String pw = "XXXX";



String URL = "jdbc:mysql://rasppi.ev:3306/XXXXXsc_123";

URL = URL + "?" + "user=" + un + "&password=" + pw;



try {

conn= DriverManager.getConnection(URL);

} catch (SQLException e) {

e.printStackTrace();

// return;

}



try {

System.out.println("Verbindung hergestellt zu: " + conn.getMetaData().getURL());

} catch (SQLException e1) {

e1.printStackTrace();

}



Statement statement=null;



String query ="SELECT ilce_id,Baslik FROM merkezler ORDER BY ilce_id LIMIT 10";



ArrayList<Mesajlar> mesajListesi = new ArrayList<Mesajlar> ();



Mesajlar mesaj = null;



try {

statement = conn.createStatement();

statement.execute(query);



ResultSet rs = statement.getResultSet();



String id = null;

String isim = null;



byte[] bozukDizi = null;

String duzgunDizi = null;



while(rs.next())

{

id = rs.getString("ilce_id");

isim = rs.getString("Baslik");

// Türkçe karakterleri düzeltme adımı:

bozukDizi = isim.getBytes("Cp1252");

duzgunDizi = new String(bozukDizi,"utf-8");

mesaj = new Mesajlar(id, duzgunDizi);

mesajListesi.add(mesaj);

}

rs.close();



} catch (Exception e) {

System.out.println("Problem!");

}



//Close section



if (statement != null)

{

try {

statement.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (conn != null)

{

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

return mesajListesi;

// END Close Section

}



// Im letzten Phase;

//------------------



public static void main(String[] args) {

ArrayList<Mesajlar> mesajlar = getVeri();



final JFrame frame = new JFrame("Test");

frame.setLayout(new GridLayout(0, 1));

JLabel lbl = null;



for(int i=0; i<mesajlar.size(); i++){

/***** Label içeriğini belirleyek ekleme ******/

lbl=new JLabel(mesajlar.get(i).getAd() +"-"+ mesajlar.get(i).getSoyad());

lbl.setBorder(BorderFactory.createLineBorder(Color.black));

frame.add(lbl);

}



frame.validate();

frame.repaint();



frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(400, 300);

frame.setVisible(true);

}

}





public class Mesajlar {

private String ad;

private String soyad;



public Mesajlar(String Ad, String Soyad){

this.ad=Ad;

this.soyad=Soyad;

}

public String getAd(){

return ad;

}

public String getSoyad(){

return soyad;

}

}




< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @webandyazilimprofesor
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.