• 0
The.Eagle

هل أستطيع تحريك النص في GUI من اليمين إلى اليسار مثلا ؟

سؤال

السلام عليكم عندي مشكلة وأريد حلها

وهي أريد أن أحرك Label من اليمين إلى اليسار

وعندي في مشكلة أخرى في أحد المتغيرات لا ينقص ولايزيد

مع أني وضعت قبله وبعده علامة ++ و - - ولم تفيدني هذا الكود

المشكلة في المتغير h

 
int l = 0,h = 0;

String x = "", t = "";


for (int i = Integer.parseInt(jTextField1.getText()); i < Integer.parseInt(jTextField2.getText()); i++) {
x = i + "";
h = x.length();

JOptionPane.showMessageDialog(this, l + " "+h);
if (x.substring(l, l + 1).equals(x.substring(h-1, h))) {
t += (x + "\n");
JOptionPane.showMessageDialog(this, l + " "+h);
}

if (i > 999)
{


l++;
h--;
JOptionPane.showMessageDialog(this, l + " "+h);
if (l >= h)
{
break;
}

}


}
jTextArea1.setText(t);

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

السلام عليكم

اولا يرجى وضع الـ class بالكامل حتى نستطيع تجربته و مساعدتك

ثانيا مشكلة عدم زيادة او نقصان المتغيرات اعتقد انها بسبب ان ++ و -- موضوعة بداخل جملة if شرطها ان i>999 وهذا الشرط لا يتحقق

هذا والله اعلم

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تفضل اخي هذا البرنامج الصغير لنفس الفكرة



import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;


/** @see http://stackoverflow.com/questions/3617326 */
public class MarqueeTest {

private void display() {
JFrame f = new JFrame("MarqueeTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String s = "بســــــم أللـــه الرحمــــن الرحيــــــم";
MarqueePanel mp = new MarqueePanel(s, 32);
f.add(mp);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
mp.start();
}

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

@Override
public void run() {
new MarqueeTest().display();
}
});
}
}
/** Side-scroll n characters of s. */
class MarqueePanel extends JPanel implements ActionListener {

private static final int RATE = 12;
private final Timer timer = new Timer(1000 / RATE, this);
private final JLabel label = new JLabel();
private final String s;
private final int n;
private int index;

public MarqueePanel(String s, int n) {
if (s == null || n < 1) {
throw new IllegalArgumentException("Null string or n < 1");
}
StringBuilder sb = new StringBuilder(n);
for (int i = 0; i < n; i++) {
sb.append(' ');
}
this.s = sb + s + sb;
this.n = n;
label.setFont(new Font("Serif", Font.ITALIC, 20));
label.setText(sb.toString());
this.add(label);
}

public void start() {
timer.start();
}

public void stop() {
timer.stop();
}

@Override
public void actionPerformed(ActionEvent e) {
index++;
if (index > s.length() - n) {
index = 0;
}
label.setText(s.substring(index, index + n));
}
}


تحياتي

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اولا يرجى وضع الـ class بالكامل حتى نستطيع تجربته و مساعدتك

ثانيا مشكلة عدم زيادة او نقصان المتغيرات اعتقد انها بسبب ان ++ و -- موضوعة بداخل جملة if شرطها ان i>999 وهذا الشرط لا يتحقق

هذا والله اعلم

تحياتي

يا عزيزي هذا كل الكود استخدمت الـ JFrame الجاهز

وبالنسبة للزيادة والنقصان فإن المتغير l يزيد وينقص والمتغير h لا يزيد ولا ينقص حتى وان تحقق الشرط

أرجوا من الإخوان المساعدة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ماذا يفعل السطر التالي؟؟

h = x.length();

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ماذا يفعل السطر التالي؟؟

h = x.length();

تم حل المشكلة

 h = (int) x.length();  

\

:wacko:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب مبروك لكن هذا لا يمنعك من اجابتي عن استفساري وايضا ايراج الحل الصحيح كي يستفيد الكل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .